大话设计模式总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UML类图 备注:1 . + public 、 -private 、 #protect 、棒棒糖表示接口 △—— 继承关系(空心三角 +实线) - - - -实现接口(空心三角 +虚线) —— 关联(实线箭头) - - - -依赖(虚线箭头) ◇—— 聚合关系(空心菱形 +实线箭头) ◆—— 组合关系(实心菱形 +实线箭头) 1、简单工厂 2、策略者模式 3、单一原则 4、开放封闭原则:软件实体(类、模块、函数等)应该可以扩展,但是不能修改 5.1 、依赖倒转原则: a 抽象不应该依赖细节,细节应该依赖抽象(针对接口变成,不要对实现编程); b 高层模块不应该依赖低层模块。两个都应该依赖抽象 5.2 、里氏替换原则 依赖倒转其实可以说是面向对象设计的标志, 用哪种语言来编写程程不重要, 如果编写 的时候考虑的都是如何针对抽象编程而不是对细节编程, 即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之那就是过程化的设计了 6、装饰模式:动态的给一个对象添加额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。装饰模式是为已有功能动态地添加更多功能的一种方式。 7、代理模式:为其他对象提供一种代理以控制对这个对象的访问 8、工厂方法:定义一个用于创建对象的接口,让子类觉得实例化哪一个类。工厂方法使一个类的实例化延迟到其子类 简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断, 根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖 9、原型模式:原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。一般 在初始化的信息不发生变化的情况下, 克隆是最好的办法, 这既隐藏了对象创建的细节, 又对性能是大大的提高(等于不用重新初始化对象,而是动态地获得对象运行时的状态) 9.2 、浅复制与深复制 MemberwiseClone() 方法是这样,如果自定是指类型的,则对该字段执行逐位复制,如 果字段是引用类型, 则复制引用但不复制引用的对象, 因此原始对象及其副本引用同一对象。 浅复制: 被复制对象的所有变量都含有与原来的对象相同的值, 而所有的对其他对象的 引用都仍然指向原来的对象; 深复制: 把引用的对象的变量指向复制过的新对象, 而不是原 有的被引用的对象 10、模板方法模式: 当我们要完成在某一个细节次一致的一个过程或一系列步骤, 但其个别 步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。 模板方法模式就是通过把不变行为搬移到超类,去除子类中的重复代码来体现他的优势。就是提供了一个很好的代码复用平台。 当不变的和可变的行为在方法的子类实现中混合在一起的时候, 不变的行为就会在子类 中的重复出现。 我们通过模板方法模式把这些行为搬移到单一的地方,重复的不变行为的纠缠。  这样就帮助子类摆脱 11、迪米特法则(最少知识原则) :如果两个类不必彼此直接通信,那么这两个类就不应当 发生直接的相互作用。 如果其中一个类需要调用另一个类的某一个方法的话, 可以通过第三 者转发这个调用。 迪米特法则首先强调的前提是在类的结构设计上,每一个类都应当尽量降低成员的访问权 限。根本思想是强调了类之间的松耦合。 类之间的耦合越弱, 越有利于复用, 一个处在弱耦合的类被修改, 不会对有关系的类造成波 及 12、外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 首先,在设计初期阶段,应该要有意识的将不同的两个层分离,层与层之间建立外观 facade ;其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂, 增加外观 facade 可以提供一个简单的接口,减少他们之间的依赖;第三,在维护一个遗留的大型系 统时,可能这个系统已经非常难以维护和扩展。为新系统开发一个外观 facade 类,来提供 设计粗糙或高度复杂的遗留代码的比较清晰简单的接口,让新系统与 facade 对象交互, facade 与遗留代码交互所有复杂的工作。 13、建造者模式: 将一个复杂对象的构建与它的表示分离,  使用同样的构建过程可以创建不 同的表示。 主要是用于创建一些复杂的对象, 这些对象内部构建间的建造顺序通常是稳定的, 但对象外部的构建通常面临着复杂的变化。 建造者模式的好处就是使得建造代码与表示代码分离, 由于建造者隐藏了该产品是如何组装的,所有若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。 建造者模式是在创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时适用的模式。 14、观察者模式: 定义了一种一对多的依赖关系, 让多个观察者对象同时监听某一个主题对象。这

文档评论(0)

5566www + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6122115144000002

1亿VIP精品文档

相关文档