Java设计模式整理

什么是设计模式?

设计模式是指针对软件开发过程中重复发生的问题的解决方法。说起设计模式,最有名的就是GoF的23种设计模式(本次整理的也均为这23种设计模式)。

设计模式分类

GoF将设计模式分为以下三类:

  • 创建型设计模式,共5种
    1. 工厂方法模式(Factory Method Pattern)
    2. 抽象工厂模式(Abstract Factory Pattern)
    3. 单例模式(Singleton Pattern)
    4. 建造者模式(Builder Pattern)
    5. 原型模式(Prototype Pattern)
  • 结构型设计模式,共7种
    1. 适配器模式(Adapter Pattern)
    2. 桥接模式(Bridge Pattern)
    3. 组合模式(Composite Pattern)
    4. 装饰者模式(Decorator Pattern)
    5. 外观模式(Facade Pattern)
    6. 享元模式(Flyweight Pattern)
    7. 代理模式(Proxy Pattern)
  • 行为型设计模式,共11种
    1. 责任链模式(Chain of Responsibility Pattern)
    2. 命令模式(Command Pattern)
    3. 解释者模式(Interpreter Pattern)
    4. 迭代模式(Iterator Pattern)
    5. 中介者模式(Mediator Pattern)
    6. 备忘录模式(Memento Pattern)
    7. 观察者模式(Observer Pattern)
    8. 状态模式(State Pattern)
    9. 策略模式(Strategy Pattern)
    10. 模板方法模式(Template Method Pattern)
    11. 访问者模式(Visitor Pattern)

设计模式6大原则

  1. 开闭原则 (Open Close Principle)
    对扩展开放,对修改关闭。实现开闭原则的关键就在于“抽象”,用抽象去构建框架,用实现扩展细节。因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。

  2. 里氏替换原则(Liskov Substitution Principle)

    “Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.”——”继承必须确保超类所拥有的性质在子类中仍然成立。”

    子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它。

  3. 依赖倒置原则(Dependence Inversion Principle)
    针对接口编程,依赖于抽象而不依赖于具体。

  4. 接口隔离原则(Interface Segregation Principle)
    接口尽量小,但是要有限度。对接口进行细化可以提高程序设计灵活性是不挣的事实,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。
    为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。只有专注地为一个模块提供定制服务,才能建立最小的依赖关系。
    提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。

  5. 迪米特法则(Demeter Principle)
    Talk only to your immediate friends。
    外观模式(Facade)和中介者模式(Mediator),都是迪米特法则应用的例子。

  6. 合成复用原则(Composite Reuse Principle)
    尽量使用对象组合,而不是继承来达到复用的目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值