Design Patterns

设计模式之单件模式-学习笔记

Clave 发布于 2016-12-25

一、定义 确保一个类只有一个实例,并提供一个全局访问点。 要点:单件模式需要私有构造器、一个静态方法、一个静态变量 二、实现 1、同步过程 适用:应用程序可以接受getinstance造成的额外负担 优点:特容易实现 缺点:多线程下,效率下降严重 实现: [crayon-59c6...

阅读(172)评论(0)赞 (0)

设计模式之工厂模式1-学习笔记

Clave 发布于 2016-12-25

一、定义 工厂方法模式:定义了一个创建对象的借口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 模式组成元素: 创建者(Creator)类: 创建抽象创建者类,定了一个抽象的工厂方法,让子类实现此方法而制造产品。 创建者通常会包含依赖于抽象产品的代码,而这些...

阅读(164)评论(0)赞 (0)

设计模式之装饰者模式-学习笔记

1

Clave 发布于 2016-12-19

一、定义 动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 二、理解 如下图所示,在对象内部创建一个实例变量,用来记录被装起来的实例,然后实现一层一层装饰起来。当需要执行贯穿所有实例的方法是,通过逐级调用内层被装饰实例实现调用: 三、实现 [cray...

阅读(156)评论(0)赞 (8)

设计模式之观察者模式-学习笔记

Clave 发布于 2016-12-14

一、定义 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 通俗理解: 观察者模式的核心是:出版社(object)+订阅者(observer),可以想象为报纸订阅类设计。 subject的interface: [crayon-59...

阅读(167)评论(0)赞 (9)

设计模式之策略模式-学习笔记

Clave 发布于 2016-12-13

一、含义 定义算法簇,分别封装,使其可以相互替换,此模式让算法的变化独立于使用算法的客户。 二、设计原则 找出应用中可能需要变化之处,把它们独立出来,不要和不需要变化的代码混合在一起。 针对接口编程,而不是针对实现编程。 多用组合,少用继承。 三、机智的Duck设计 代码: [c...

阅读(188)评论(0)赞 (0)