设计模式
设计模式是人们在长期的软件开发中对一些经验的总结,是对某些特定问题经过实践检验的特定解决方法。
设计模式通常是指GoF设计模式。(Gang of Four,四人组)指的是Design Patterns:Elements of Reusable Object-Oriented Software 这本书的4位作者:Gamma.Helm.Johnson和Vlissides。书中总结了23种经典的设计模式,因此被称为GoF设计模式。
这23种设计模式有两种分类方式。
(1)根据目的划分,即根据设计模式是用于完成何种工作来划分。这种方式可分为创建型模式,结构型模式和行为型模式3种。
☞创建型模式:用于描述“如何创建对象”,其主要特点是“将对象的创建与使用分离”。
☞结构型模式:用于描述如何将类或对象按某种布局组成更大的结构。
☞行为型模式:用于描述类或对象之间如何相互协作,共同完成单个对象无法独立完成的任务,以及如何分配职责。
(2)根据作用范围划分,即根据设计模式主要作用于类上还是主要作用于对象上来划分。这种方式可分为类模式和对象模式两种。
☞类模式:用于处理类与子类之间的关系,这些关系通过继承来建立,是静态的,在编译时刻便确定下来了。
☞对象模式:用于处理对象之间的关系,这些关系可以通过组合或聚合来实现,在运行时是可以变化的,更具动态性。
GoF设计模式的分类
范围;目的 | 创建型模式 | 结构型模式 | 行为型模式 |
---|---|---|---|
类模式 | 工厂方法 | (类适配器) | 模板方法 ; 解释器 |
对象模式 | 单例;原型;抽象工厂;建造者 | 代理;(对象)适配器;桥接;装饰;外观;享元;组合 | 策略;命令;职责链状态;观察者;中介者;迭代器;访问者;备忘录 |
PS:适配器模式同属于类模式和对象模式,可分为类适配器和对象适配器两种形式;
对于如何设计易于维护和扩展的软件系统,面向对象的软件设计提出了几大原则。这些原则可以用来检验软件系统设计的合理性,也被设计模式所遵循。
☞单一职责原则:单一职责介绍
☞开闭原则:开闭原则介绍
☞里氏替换原则:
☞依赖倒置原则
☞接口隔离原则
☞迪米特法则
☞合成复用原则