常用设计模式
设计模式概述
设计模式是软件开发中常见问题的可重用解决方案,它们是在特定场景下解决特定问题的经验总结。设计模式可以帮助我们写出更易维护、更易理解的代码。
设计模式的分类
创建型模式
- 单例模式(Singleton)
- 工厂方法模式(Factory Method)
- 抽象工厂模式(Abstract Factory)
- 建造者模式(Builder)
- 原型模式(Prototype)
结构型模式
- 适配器模式(Adapter)
- 桥接模式(Bridge)
- 组合模式(Composite)
- 装饰器模式(Decorator)
- 外观模式(Facade)
- 享元模式(Flyweight)
- 代理模式(Proxy)
行为型模式
- 责任链模式(Chain of Responsibility)
- 命令模式(Command)
- 解释器模式(Interpreter)
- 迭代器模式(Iterator)
- 中介者模式(Mediator)
- 备忘录模式(Memento)
- 观察者模式(Observer)
- 状态模式(State)
- 策略模式(Strategy)
- 模板方法模式(Template Method)
- 访问者模式(Visitor)
设计模式的原则
- 开闭原则(OCP):软件实体应该对扩展开放,对修改关闭。
- 单一职责原则(SRP):一个类应该只有一个引起它变化的原因。
- 里氏替换原则(LSP):子类必须能够替换其父类。
- 接口隔离原则(ISP):使用多个专门的接口比使用单个总接口要好。
- 依赖倒置原则(DIP):高层模块不应该依赖低层模块,两者都应该依赖抽象。
设计模式的应用场景
何时使用设计模式
- 需要解决特定问题时
- 需要提高代码复用性时
- 需要提高代码可维护性时
- 需要提高代码可扩展性时
- 需要提高代码可测试性时
何时不使用设计模式
- 过度设计时
- 简单问题复杂化时
- 团队不熟悉该模式时
- 维护成本过高时
- 性能要求极高时