设计模式一(工厂方法、抽象工厂、单例)
2012-11-16 20:06
295 查看
2012-05-20 21:35
(一)简单工厂模式
1、实现思维:简单工厂模式是根据提供给他的数据,返回几个可能。类中的实例。通常他返回的是一个共同的父类和共同的方法,但是每个方法执行的任务不同,而且根据不同数据进行了优化。
2、实例:
父类:
子类1: 子类2:
工厂:
使用工厂:
1、 缺点:违反了“开放-封闭原则”。
2、
(二)工厂方法模式
1、实现思维:没有专门的类来决定所要实例化的子类,将此实现延迟到子类,这种模式实际没有决策点。
2、实例:
父类:
子类1: 子类2:
基类工厂(接口):
对应子类工厂1: 对应子类工厂2:
使用:
3、性能优缺:虽然遵循了“开发-封闭原则”,但是当增加相应的产品时,必须增加一个相应的产品工厂,增大了开发量。
更换对象时,降低了客户程序与产品对象的耦合。
(三)抽象工厂模式
1、实现思维:提供一个创建一系列相关或者是相互依赖的对象接口,而不是需要指定他们具体的类。
2、实例:(反射机制在抽象工厂的应用)
反射机制:运行中的程序对自身进行检查(自审),并能直接操作程序的内部属性。
首先引用
父类(“工厂”,利用反射来取代工厂):
子类:
反射机制的体现:
应用程序配置文件:
实现:
(四)、单例模式
1、实现思维:确保某个类只有一个实例,而且自行实例化并向整个系统提供此类的实例(全局访问点)。此类成为单例类。(构造函数私有化)
2、实例(多线程):
双重锁定。 以及静态初始化(密封类sealed)。
① 、静态初始化实现单例类
② 、双重锁定实现单例类
为什么使用2次判断??解决了线程的并发问题,同时避免在每个instance属性方法的调用中出现独占锁定。
使用单例类(客户端实现)(多线程)
能力有限,有错之处望指出,非常感谢!
这2天为了设计模式搞晕了(因为在学校真的用的很少)所以又去把几个设计模式瞄了又瞄,想想每次都要重新敲一遍代码,干脆自己总结总结涨点经验,加深印象.....
(一)简单工厂模式
1、实现思维:简单工厂模式是根据提供给他的数据,返回几个可能。类中的实例。通常他返回的是一个共同的父类和共同的方法,但是每个方法执行的任务不同,而且根据不同数据进行了优化。
2、实例:
父类:
子类1: 子类2:
工厂:
使用工厂:
1、 缺点:违反了“开放-封闭原则”。
2、
(二)工厂方法模式
1、实现思维:没有专门的类来决定所要实例化的子类,将此实现延迟到子类,这种模式实际没有决策点。
2、实例:
父类:
子类1: 子类2:
基类工厂(接口):
对应子类工厂1: 对应子类工厂2:
使用:
3、性能优缺:虽然遵循了“开发-封闭原则”,但是当增加相应的产品时,必须增加一个相应的产品工厂,增大了开发量。
更换对象时,降低了客户程序与产品对象的耦合。
(三)抽象工厂模式
1、实现思维:提供一个创建一系列相关或者是相互依赖的对象接口,而不是需要指定他们具体的类。
2、实例:(反射机制在抽象工厂的应用)
反射机制:运行中的程序对自身进行检查(自审),并能直接操作程序的内部属性。
首先引用
父类(“工厂”,利用反射来取代工厂):
子类:
反射机制的体现:
应用程序配置文件:
实现:
(四)、单例模式
1、实现思维:确保某个类只有一个实例,而且自行实例化并向整个系统提供此类的实例(全局访问点)。此类成为单例类。(构造函数私有化)
2、实例(多线程):
双重锁定。 以及静态初始化(密封类sealed)。
① 、静态初始化实现单例类
② 、双重锁定实现单例类
为什么使用2次判断??解决了线程的并发问题,同时避免在每个instance属性方法的调用中出现独占锁定。
使用单例类(客户端实现)(多线程)
能力有限,有错之处望指出,非常感谢!
相关文章推荐
- 【设计模式】【工厂方法根据type参数升级为抽象工厂】
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 设计模式系列10---高度定制的抽象工厂方法模式
- 设计模式学习之简单工厂、工厂方法、抽象工厂
- 设计模式---工厂方法和抽象工厂的定义和区别
- 设计模式之工厂方法、简单工厂、抽象工厂
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别【转】
- java设计模式-创建模式之 简单工厂,工厂方法和抽象工厂的区别总结
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别 (转)
- PHP中的设计模式-简单工厂,静态工厂,工厂方法,抽象方法的关系
- 【编程素质】设计模式-工厂模式:工厂方法、简单工厂、抽象工厂
- 设计模式之简单工厂、工厂方法、抽象工厂
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别 (转)
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别 (转)
- 每周一个设计模式之工厂方法与抽象工厂