设计模式

设计模式(Design Pattern) 通常被有经验的面向对象的软件开发人员所采用。

设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

换言之,是一种解决问题的套路

写在前面

  1. 这个世界不存在银弹。量体裁衣才是最好的。不要为了用模式而用,而是能不用就不用。

  2. 设计模式应该就像字典。你应该学会查询和理解,而不是死记硬背(事实证明,记不住的:))。

创作缘由

关于设计模式的文章很多,但是大都大同小异。包括本系列。

但是我会尽力者多一些东西,也方便自己和他人以后查阅学习。

谁适合阅读本系列教程

基础

Java 基础。如果没有接触过 Java,建议首先学习 Java。

初学者

如果你为了更好的工作,成长或者面试,不妨看看本教程。

一定经验开发者

设计模式可以让我们走的更远。

不要想着一直用设计模式,而是用合适的模式解决我们解决的问题。

各种设计模式的关系鸟瞰

这图是书上截的,此处直接使用。便于理解各种模式的关系。

设计模式的关系

代码开源地址

所有的代码都在 design-pattern-note

欢迎批评指正。

目录导航

01-Design Pattern-01-工厂模式(factory)

02-Design Pattern 01-入门案例 单例+工厂+抽象工厂

03-Design Pattern 02-抽象工厂模式(abstract factory)

04-Design Pattern 02-代理模式 策略模式 proxy strategy

05-Design Pattern-03-观察者模式 observer

06-Design Pattern 03-单例(singleton)设计模式

07-Design Pattern 04-builder 构建者模式

08-Design Pattern 05-原型模式(Prototype Pattern)

09-Design Pattern 05-边车模式 sidecar

10-Design Pattern 06-适配器模式(Adapter Pattern)

11-Design Pattern 07-java 桥接模式(Bridge Pattern)

12-Design Pattern 08-java 过滤器模式(Filter Pattern)

13-Design Pattern 09-java 组合模式(Composite Pattern)

14-Design Pattern 10-java 装饰器模式(Decorator Pattern)

15-Design Pattern 11-java 外观模式(Facade Pattern)

16-Design Pattern 12-java 享元模式(Flyweight Pattern)

17-Design Pattern 13-java 代理模式(Proxy Pattern)

18-Design Pattern 14-java 责任链模式(Chain of Responsibility Pattern)

19-Design Pattern 15-java 命令行模式(Command Pattern)

20-Design Pattern 16-java 解释器模式(Interpreter Pattern)

21-Design Pattern 17-java 迭代器模式(Iterator Pattern)

22-Design Pattern 18-java 中介者模式(Mediator Pattern)

23-Design Pattern 19-java 备忘录模式(Memento Pattern)

24-Design Pattern 20-java 观察者模式(Observer Pattern)

25-Design Pattern 21-java 状态模式(State Pattern)

26-Design Pattern 22-java 空对象模式(Null Object Pattern)

27-Design Pattern 23-java 策略模式(Strategy Pattern)

28-Design Pattern 24-java 模板模式(Template Pattern)

29-Design Pattern 25-java 访问者模式(Visitor Pattern)

30-Design Pattern 26-java MVC 模式(Model-View-Controller)

31-Design Pattern 27-java 业务代表模式(Business Delegate Pattern)

32-Design Pattern 28-java 组合实体模式(Composite Entity Pattern)

33-Design Pattern 29-java 数据访问对象模式(Data Access Object Pattern)

34-Design Pattern 30-java 前端控制器模式(Front Controller Pattern)

35-Design Pattern 31-java 拦截过滤器模式(Intercepting Filter Pattern)

36-Design Pattern 32-java 服务定位器模式(Service Locator Pattern)

37-Design Pattern 33-open close 开闭原则

38-Design Pattern 34-LSP 里氏替换原则

39-Design Pattern 35-依赖倒置原则(Dependence Inversion Principle,DIP)

40-Design Pattern 36-单一职责原则(Single Responsibility Principle,SRP)

41-Design Pattern 37-接口隔离原则(Interface Segregation Principle,ISP)

42-Design Pattern 38-迪米特法则(Law of Demeter,LoD)

43-Design Pattern 39-合成复用原则(Composite Reuse Principle,CRP)

参考资料

Github java-design-patterns