《Head First 设计模式》整理

  • 时间:
  • 浏览:0
  • 来源:大发5分快乐8_大发5分快乐8官方

在有有另还还有一个法子 中定义有有另还还有一个算法的骨架,而将一些步骤延迟到子类中。模板法子 使得子类还里能 在不改变算法特性的请况下,重新定义算法中的一些步骤。

允许对象在内部内部结构请况改变时改变它的行为,对象看起来好像修改了它的类。

将“请求”封装成对象,以便使用不同的请求、队列否则日志来参数化一些对象。命令模式也支持可退还的操作。

《Head First 设计模式》中的常用设计模式的分派,真是如果 有模式朋友 在开发中都在用到,否则在此之前 好难 三种 理论基础支撑当时人,有了那此知识后,更助于做好系统进程的设计工作,以及遇到一些设计问题报告 时知道如可选择。

通过组合不同的算法,为系统提供运行时动态地改变行为的功能,使系统具有更大的弹性。

定义了有有另还还有一个创建对象的接口,但由子类决定要实例化的类是哪有有另还还有一个。工厂法子 让类把实例化推迟到子类。

将请况封装成独立的类,并将动作委托到代表当前请况的对象,使行为随着内部内部结构请况而改变。

抽象工厂允许客户使用抽象的接口来创建一组相关的产品,而不前要知道(或关心)实际产出的具体产品是那此,之前 一来,客户就从具体的产品中被解耦。

动态地将责任附加到对象上。若要拓展功能,装饰者提供了比继承更有弹性的替代方案。

适配器还里能 将改变的接口封装起来,客户就未必为了应对不同的接口而每次跟着修改。

创建有有另还还有一个独一无二的对象。

确保有有另还还有一个类非要有有另还还有一个实例,并提供有有另还还有一个全局访问点。

将算法定义成一组步骤,其中的任何步骤都还里能 是抽象的,由子类负责实现。这还里能 确保算法的特性保持不变,共同由子类提供偏离 实现。

让朋友 能游走于集合中的每有有另还还有一个元素,而又不暴露其内部内部结构的表示。

坦白说,工厂法子 与抽象工厂的类似度很高,从类图上看好难将它们理清楚,否则从定义上来看一段话会发现它们的区别主如果 我在设计层次上,以朋友 朋友 熟悉的电子产品为例,否则有有有另还还有一个产品:手机、电脑,用工厂法子 表示苹果7苹果7苹果7手机手机5和三星的类图:



从品牌的深度1上来看,两家厂商生产不同的手机和电脑,之前 的工厂法子 很清晰;否则否则朋友 把生产条件做的更细致一些一段话,比如苹果7苹果7苹果7手机手机5面向中国的产品和面向美国的产品是不同的,面向中国大陆销售的产品是阉割过的,而美国的是全功能的,用抽象工厂表示就像之前 :



抽象工厂的每有有另还还有一个子类都像是有有另还还有一个工厂法子 ,就像抽象工厂的定义所说的那样:用于创建相关或依赖对象的家族。

也能创建有有另还还有一个树形特性,在同有有另还还有一个特性中出理 嵌套菜单和菜单项组。

提供了有有另还还有一个统一的接口,用来访问子系统中的一群接口。外观定义了有有另还还有一个高层接口,让子系统更容易使用。

将有有另还还有一个类的接口,转添加客户期望的之前 接口。适配器让之前 接口不兼容的类还里能 媒体媒体合作无间。

提供有有另还还有一个接口,用于创建相关或依赖对象的家族,而不前要明确指定具体类。

让代理对象控制对某个对象的访问,被代理的对象还里能 是远程的对象、创建开销大的对象或前要安全控制的对象。

装饰者还里能 在被装饰者的行为前面或顶端添加当时人的行为,甚至将被装饰者的行为整个取代掉,从而达到三种 特定的目的。

通过使用观察者模式,使多个对象之间松耦合,否则它们依如果 能 交互,否则不需要清楚彼此的细节。

通过统一的接口操作不同的对象,使系统也能轻易的实现多种目的。

将有有另还还有一个或数个类的复杂化的一切都隐藏在身前,只显露出有有另还还有一个干净美好的外观。



代理是个复杂化的模式,变种颇多,不同的变种甚至都在不同的类图。

允许你将对象组合成树形特性来表现“整体/偏离 ”层次特性。组合能让客户以一致的法子 出理 个别对象以及对象组合。

提供三种 法子 顺序访问有有另还还有一个集合对象中的各个元素,而又不暴露其内部内部结构的表示。

通过让子类决定该创建的对象是那此,来达到将对象创建的过程封装的目的。

定义了对象之间的一对多依赖,之前 一来,当有有另还还有一个对象改变请况时,它的所有依赖者都在收到通知并自动更新。

为之前 对象提供有有另还还有一个替身或占位符以控制对一些 对象的访问。

定义了算法族,把它们分别封装起来,让它们之间还里能 互相替换,此模式让算法的变化独立于使用算法的客户之上。