# java 23 种种设计模式可分为三大类
创建型模式(5 种):
工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构性模式(7 种):
适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为模式(11 种):
访问者模式、模板模式、策略模式、状态模式、观察者模式、备忘录模式、中介者模式、迭代器模式、解释器模式、命令模式、责任链模式。
# 设计模式的七种设计原则
单一职责原则
一个类应该只负责一个职责;否则,类应该被拆分。
开闭原则
程序需要进行拓展的时候,不能通过修改已有的代码实现变化,而应该通过扩展软件实体的方式实现,如根据需求重新派生一个实现类。里氏替换原则
所有使用基类代码的地方,如果换成子类对象还能够正常运行,则满足这个原则。依赖倒置原则
依赖于约定而不依赖于具体实现,即面向接口编程。接口隔离原则
要求尽量将庞大臃肿的接口拆分成更小、更具体的接口,让接口中只包含客户感兴趣的的方法。迪米特原则
被依赖的类应尽量将复杂逻辑封装在类的内部,不对外泄漏任何中间信息。合成复用原则
尽量使用组合 / 聚合的方式,而不是继承关系达到软件复用的目的。