设计模式简介
设计模式代表了最佳实践,是软件开发人员在软件开发过程中面临的一般问题解决方案。使用设计模式是为了重用代码,让代码更容易被他人理解,保证代码可靠性。合理的运用设计模式可以完美的解决很多问题,每种模式在现实中都有对应的原理来与之对应。每种模式都描述了一个在我们周围不断重复发生的问题,以及改问题的核心解决方案。
设计模式的使用
主要有两个用途
开发人员的共同平台
设计模式提供了一个标准的术语系统 ,且具体到特定的情景。例如单例设计模式意味着使用单个对象,这样所有熟悉单例设计模式的开发人员都能使用单个对象,并且通过这种方式告诉对方程序使用的是单例设计模式。
最佳实践
设计模式提供了软件开发过程中面临的一般问题的最佳解决方案,学习这些模式有助于经验不足的开发人员通过一种简单快捷的方式来学习设计。
设计模式的类型
设计模式的类型可以分为三大类: 创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)
创建型
提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是用new运算符直接实例化对象,这使得程序在判断针对某个实例需要创建哪些对象时更加灵活。
包含: 工厂模式(Factory Pattern),抽象工厂模式(Abstract Factory Pattern),单例模式(Singleton Pattern),建造者模式(Builder Pattern),原型模式(Prototype Pattern)
结构型
关注类和对象的结合,继承的概念被用来组合接口和定义组合对象获得新功能的方式。
包含:适配器模式(Adapter Pattern),桥接模式(Bridge Pattern),过滤器模式(Filter、Criteria Pattern),组合模式(Composite Pattern),装饰器模式(Decorator Pattern),外观模式(Facade Pattern),享元模式(Flyweight Pattern),代理模式(Proxy Pattern)
行为型
关注对象之间的通信
包含:责任链模式(Chain of Responsibility Pattern),命令模式(Command Pattern),解释器模式(Interpreter Pattern),迭代器模式(Iterator Pattern),中介者模式(Mediator Pattern),备忘录模式(Memento Pattern),观察者模式(Observer Pattern),状态模式(State Pattern),空对象模式(Null Object Pattern),策略模式(Strategy Pattern),模板模式(Template Pattern),访问者模式(Visitor Pattern)
设计模式的六大原则
开闭原则
实现热插拔,提高扩展性
里氏代换原则
任何基类出现的地方,子类一定可以出现。只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
依赖倒转原则
针对接口编程,依赖于抽象而不依赖于具体。
接口隔离原则
降低耦合度,接口单独设计,互相隔离。
迪米特法则(最少知道原则)
一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。
合成复用原则
尽量使用合成/聚合的方式,而不是使用继承。
网友评论