随笔分类 - 设计模式
摘要:在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 假如有一个排序方法: 如果我们想要自定义排序,只需要重写CompareTo方法即可. 模板方法中的挂钩
阅读全文
摘要:适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以无间合作。 这个模式可以创建适配器进行接口转换,让不兼容的接口变成兼容。 这个模式主要有四个部分: Client:客户 Target:目标接口 Adapter:适配器 Adaptee:被适配者 例子:假设有一个鸭子
阅读全文
摘要:命令模式:将“请求”封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象,命令模式也支持可撤销的操作。 一个命令对象通过在特定的接收者上面绑定一组动作来封装这个请求。要达到这一点,命令对象将接收者和动作封装在一个对象中,只暴露出一个Execute()方法。当此方法调用则进行接收者的动作。从外
阅读全文
摘要:单例模式一般为共享数据使用,例如对象池、查看文件。为了防止创建多个对象,一般在单例模式中使用Private修饰符修饰,这样能确保在内部构建。如果包括类都是静态的一般用于没有变量的工具方法中。 一般防止在多线程中创建多个单例模式,有如下三种方法应对: 1)、在类的内部New好对象,这一般是能保证单例模
阅读全文
摘要:工厂模式是为了产生不同类型的对象。俗称加工工厂。常见的三种模式简单工厂模式、工厂方法模式、抽象工厂模式三个方式。 1)、简单工厂模式 特点 1、它是一个具体的类,非接口 抽象类。有一个重要的create()方法,利用if或者 switch创建产品并返回。 2 、create()方法通常是静态的,所以
阅读全文
摘要:装饰者模式:动态地将责任附加到对象上。若要拓展功能,装饰者提供了比继承更有弹性的替代方案。 一般装饰者包括组件和装饰者对象,组件基类包含所需要装饰的部分,具体组件和装饰类都继承与组件基类。这样做的保证是能让装饰者与组件是同一个类型。 装饰类一般有组件的引用对象,通过引用对象完成装饰功能,并且可以拓展
阅读全文
摘要:观察者模式类似出版社与订阅者的关系,订阅者能够收到出版社发出的消息,可以取消订阅。出版社在观察者模式中称为主题(Subject)订阅者称为观察者(Observer)。 主题可以添加观察者,如果有事件发送给观察者。一般Subject中有可以注册、移除、执行事件。Observer一般在实现接口Inter
阅读全文
摘要:策略模式是将一系列事物中相关联的抽取出来,其中抽取出来的又可分为可变化部分与不可变化部分。将不可变化的部分放在基类,对可变化部分进行面向接口式编程(可用Abstract或者Interface)。之后进行基类与接口类的组合,在基类中放入接口类的变量,基类只是进行接口类的委托,具体的还是在继承接口的对象
阅读全文