标签:
【前言】今天再次把《大话设计模式》一书拿出来翻了一下,对于前面一节初探中讲诉的简单工厂模式和策略模式,有了更好的理解。按照习惯,还是继续梳理梳理。
【简单工厂模式】:封装(数据+算法)
简单工厂模式的特点:
2.1 工厂类可以达到将实现具体逻辑的子类隐藏的效果,只需要将自己暴露调用实例化的接口,根据工厂类提供的对外方法,在内部实现逻辑判断,并最后实例化具体的子类对象。所以其实最后对外编程就仅仅只需要这个工厂类就可以了。
2.2 工厂类起了调度管理子类的作用,所以它内部逻辑也增加了需要自己判断实例化对象的职责。
【策略模式】封装算法
策略模式在用法上与简单工厂模式很相像,但是还是有一些区别。策略模式最主要的侧重点在于封装变化的算法,也即是实现逻辑,而不封装数据。所以它一般都可以用在抽象类和接口的实现上。
1. 策略模式的特点:每一个子类只封装具体算法实现,一般用于接口和抽象类继承。
2. 策略引用类其实起到了一个具体实现子类的一个替身的效果:
2.1 在实例化具体的策略引用类的过程中,对于需要调用哪一个算法实现来初始化策略引用类的这一部分职责其实还是需要在我们的应用程序业务逻辑中判断,所以每一个具体的子类实现,对于开发者而言任然是可见的;而简单工厂模式则不同,对于需要实例化哪一个具体的子类实现的判断和选择的职责全都交给了工厂类来承担,对于开发者而言,具体的子类实现是不需要对外可见的,这也是与简单工厂模式的区别之一。
标签:
原文地址:http://www.cnblogs.com/georgeHeaven/p/4351986.html