设计模式有很多种,但常用的分为23种。
设计模式已经成为软件设计人员必须掌握的思想和技术。可以说只有设计模式才能真正实现代码编制的工程化,才能真正实现代码的重用性和可维护性。
定义:设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式
其中的关键元素包括以下四个方面:
模式名称 (Pattern name)
问题 (Problem)
解决方案 (Solution)
效果 (Consequences)
面向对象的七大设计原则:
1.开放封闭原则OCP
2.单一职责SRP
3.里氏代换LSP
4.依赖倒转DIP
5.迪米特法则LOD
6.接口隔离ISP
7.合成聚合复用原则CARP
UML六大关系
关联关系(Association)
聚合关系(Aggregation)
组合关系(Composition)
依赖关系(Dependency)
实现关系(Realization)
泛化关系(Generalization)
设计模式的分类
①根据其目的(模式是用来做什么的)可分为:
创建型(Creational): 主要用于如何创建对象。
结构型(Structural): 主要用于如何实现类或对象的组合。
行为型(Behavioral): 主要用于描述对类或对象怎样交互和怎样分配职责。
②根据范围,即模式主要是用于处理类之间关系还是处理对象之间的关系,可分为:
类模式: 处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。
对象模式: 处理对象间的关系,这些关系在运行时刻变化,更具动态性。
创建型模式:
抽象工厂模式(Abstract Factory)
建造者模式(Builder)
工厂方法模式(Factory Method)
原型模式(Prototype)
单例模式(Singleton)
结构型模式
适配器模式(Adapter)
桥接模式(Bridge)
组合模式(Composite)
装饰模式(Decorator)
外观模式(Facade)
享元模式(Flyweight)
代理模式(Proxy)
行为型模式
职责链模式(Chain of Responsibility)
命令模式(Command)
迭代器模式(Iterator)
中介者模式(Mediator)
备忘录模式(Memento)
观察者模式(Observer)
状态模式(State)
策略模式(Strategy)
模板方法模式(Template Method)
访问者模式(Visitor)
解释器模式(Interpreter)