【设计模式分类】
设计模式中模式的分类其实和我们生活是非常接近的。上次总结的时候说道面向对象的王国,那我就拿朝廷招募人才举例。当朝廷没有人才的时候需要培养人才,当人才招募进宫之后需要给这些人才分配官职,最后是给这些官员分配任务。培养人才是根据需求的不同培养不同的人才;分配官职其实也就确定了官员的交际对象和活动范围,官员不可能老往后宫跑啊!;给官员分配任务就是告诉官员做什么。
设计模式中的分类也是这样的。在没有对象之前先是创建对象、然后是对象结构,说明对象和对象的关系、最后是对象行为,说明对象怎么工作。
书面解释:
1.创建型模式
社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。
2.结构型模式
在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。对象结构的设计很容易体现出设计人员水平的高低。
3.行为型模式
在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高。
创建模式大赛:
设计模式这本书中创建模式其实是六个,但是由于简单工厂模式不是Gof总结出的一种,所以在设计模式大赛的时候给筛选出去了。但是在总结的时候我还是带上了它。
【简单工厂】(Simple Factory Pattern)
简单工厂是又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
简单工厂模式解决的问题是如何去实例化一个合适的对象。
简单工厂模式的核心思想就是:有一个专门的类来负责创建实例的过程。
具体来说,把产品看着是一系列的类的集合,这些类是由某个抽象类或者接口派生出来的一个对象树。而工厂类用来产生一个合适的对象来满足客户的要求。
【工厂方法】(Factory Method)
工厂方法定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法是一个类的实例化延迟到子类。
工厂方法是简单工厂升级过来的。当简单工厂中需要添加具体类的时候,需要改动简单工厂中的代码,这违背了“开-闭原则”,所以是不可取的。根据“依赖倒转原则”针对接口编程,不要针对实现编程。所以对简单工厂类进行改进,把简单工厂抽象成抽象工厂,然后让抽象工厂提供接口,让具体的工厂类去实现接口。其实就相当于把简单工厂中每个具体对象用具体的工厂去替代。
由于篇幅原因,其他模式总结请看下一篇博客(点我!)