Introduction
根据目的和范围,设计模式可以分为五类。按照目的分为:创建设计模式,结构设计模式,以及行为设计模式。按照范围分为:类的设计模式,以及对象设计模式。下面分别介绍。
创建设计模式
创建设计模式(Creational patterns),用于创建对象时的设计模式。更具体一点,初始化对象流程的设计模式。当程序日益复杂时,需要更加灵活地创建对象,同时减少创建时的依赖。而创建设计模式就是解决此问题的一类设计模式。
结构设计模式
结构设计模式(Structural patterns),用于继承和接口时的设计模式。结构设计模式用于新类的函数方法设计,减少不必要的类定义,减少代码的冗余。
行为设计模式
行为设计模式(Behavioral patterns),用于方法实现以及对应算法的设计模式,同时也是最复杂的设计模式。行为设计模式不仅仅用于定义类的函数行为,同时也用于不同类之间的协议、通信。
类的设计模式
类的设计模式(Class patterns),用于类的具体实现的设计模式。包含了如何设计和定义类,以及父类和子类的设计模式。
对象设计模式
对象设计模式(Object patterns),用于对象的设计模式。与类的设计模式不同,对象设计模式主要用于运行期对象的状态改变、动态行为变更等。
为什么会重构?
重构通常是由于现有程序的框架不能很好的适应新需求,虽然可以通过硬编码(hardcode)或者绕过(bypass)的方式来解决一个新需求,但这并不是长久之计。当新需求越来越多时,现在程序会越来越冗余,导致最后的不可维护。
架构和设计模式的区别
相比架构(frameworks),设计模式是一些抽象的组成架构的元素,且更为灵活通用。
架构更适合解决具体问题,使用架构构建应用程序将更为快捷,不过相比设计模式,架构牺牲了灵活性。
Summary
本文介绍了设计模式的分类,后面我们将分别介绍各种设计模式。