设计模式最佳实践

一、什么是设计模式

  “每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”   ——Christopher Alexander

  正如Christopher Alexander所说,面向对象中的设计模式指在不断的开发积累中,一套被反复使用、经过分类的、代码设计经验总结。

  猿们肯定遇到过要重构代码,修改功能实现方式,面对前任留下的代码,爬过一坑又一坑,有时候一着不慎,还要回滚至原来版本重新开始,苦逼一枚 (╥╯^╰╥) 。回过头看看Spring,为何在使用Spring的时候那么轻松easy,翻翻Spring源码,各种高大上啊,仔细一看,设计模式用的66的,暗自下决心设计模式快到碗里来。

  想想Spring这样庞大的开源框架,如果没有清晰的类关系,没有良好的软件架构,可能发展到现在吗!一个结构良好的面向对象软件体系结构中一定包含了许多设计模式。评估一个面向对象系统的质量,使用的方法之一就是要判断系统的设计者是否强调了对象之间的公共协同关系。在系统开发阶段强调这种机制,能使所生成的系统体系机构更加精巧、简洁和易于理解,其程度远远超过与未使用模式的体系结构。


二、设计模式六大原则

1. 开闭原则(Open Close Principle)

In object-oriented programming, the open/closed principle states “software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification”;[1] that is, such an entity can allow its behaviour to be extended without modifying its source code.

  开闭原则(Open Closed Principle)是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的、灵活的系统。指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。

  简单的说就是在修改需求的时候,应该尽量通过扩展来实现变化,而不是通过修改已有代码来实现变化。

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

3. 依赖倒转原则(Dependency Inversion Principle)

4. 接口隔离原则(Interface Segregation Principle)

5. 迪米特法则(最少知道原则)(Demeter Principle)

6. 合成复用原则(Composite Reuse Principle)


三、常用设计模式 Index

  1. Single(单例模式)
  2. Iterator(迭代器模式)
  3. Factory Method(工厂方法)
  4. Abstract Factory(抽象工厂方法)
  5. Prototype(原型模式)
  6. Builder(建造者模式)
  7. Facade(外观模式)
  8. Proxy(代理模式)
  9. Composite(组合模式)
  10. Adapter(适配器模式)
  11. Decorator(装饰模式)
  12. Bridge(桥接模式)
  13. Flyweight(享元模式)
  14. Template Method(模板方法)
  15. Observer(观察者模式)
  16. Memento(备忘录模式)
  17. Command(命令模式)
  18. Chain of Responsibility(责任链)
  19. State(状态模式)
  20. Strategy(策略模式)
  21. Mediator(中介者)
  22. Interpreter(解释器模式)
  23. Visitor(访问者模式)

四、设计模式分组

【这里对设计模式进行分组】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值