Java设计模式(零)设计模式概述

Author Avatar
wshunli 9月 05, 2018
  • 在其它设备中阅读本文章

设计模式也是比较欠缺的一方面,这次看的是 《设计模式之禅》 ,前面看了一点 《Head First 设计模式》感觉都是图片有点乱。

第一部分 设计原则

单一职责原则:应该有且仅有一个原因引起类的变更,对于接口设计时要做到单一职责。

里氏替换原则:只要有父类出现的地方,替换为子类也不会产生任何问题或异常。
  
依赖倒置原则:模块间的依赖关系是通过接口或抽象类产生的(面向接口编程)。

接口隔离原则:客户不应该依赖它不需要的接口;类间的依赖关系应建立在最小的接口上;尽量使用多个专门的接口。

迪米特法则:一个对象应对其他对象有最少的了解;只和直接朋友交流,朋友间也是有距离的;一个方法中尽量不引入类中不存在的对象;减少 public 方法和属性。

开闭原则:对扩展开放,对修改关闭;通过扩展来实现变化;不允许出现接口或抽象方法中不存在的 public 方法。

第二部分 设计模式

设计模式根据目的可以分为三大类,分别是 创建型设计模式、行为型设计模式以及结构型设计模式

(一) 创建型模式 涉及到将对象实例化,这类模式都提供一个方法,将客户从所需要实例化的对象中解藕。

创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。

创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。创建型模式隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。

1、单例模式(Singleton)

https://www.wshunli.com/posts/d1c4534.html

2、简单工厂模式(Simple Factory)

https://www.wshunli.com/posts/6ae09785.html

3、工厂方法模式(Factory Method)

https://www.wshunli.com/posts/4982f93c.html

4、抽象工厂模式(Abstract Factory)

https://www.wshunli.com/posts/4e3be4ad.html

5、建造者模式(Builder)

https://www.wshunli.com/posts/325f89c7.html

6、原型模式(Prototype)

https://www.wshunli.com/posts/b7ba42b9.html

(二) 结构型模式 可以让你把类或对象组合到更大的结构中。

结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。

结构型模式可以分为 类结构型模式和对象结构型 模式:
(1) 类结构型模式关心类的组合,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承和实现关系。
(2) 对象结构型模式关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象,然后通过该对象调用其方法。根据“合成复用原则”,在系统中尽量使用关联关系来替代继承关系,因此大部分结构型模式都是对象结构型模式。

7、适配器模式(Adapter)

https://www.wshunli.com/posts/69ceed63.html

8、外观模式(Facade)

https://www.wshunli.com/posts/82583d16.html

9、装饰者模式(Decorator)

https://www.wshunli.com/posts/d95b685e.html

10、代理模式(Proxy)

https://www.wshunli.com/posts/b4b3761.html

11、组合模式(Composite)

https://www.wshunli.com/posts/fb6e1df3.html

12、桥接模式(Bridge)

https://www.wshunli.com/posts/f75ecf9a.html

13、享元模式(Flyweight)

https://www.wshunli.com/posts/180f2df5.html

(三) 行为型模式 涉及到类和对象如何交互及分配职责。

14、观察者模式(Observer)

15、策略模式(Strategy)

16、命令模式(Command)

17、迭代器模式(Iterator)

18、模板方法模式(Template Method)

19、状态模式(State)
20、责任链模式(Chain of Responsibility)
21、解释器模式(Interpreter)
22、备忘录模式(Memento)
23、访问者模式(Visitor)
24、中介者模式(Mediator)

参考资料
1、图说设计模式 — Graphic Design Patterns
https://design-patterns.readthedocs.io/zh_CN/latest/index.html#
2、设计模式Java版
https://quanke.gitbooks.io/design-pattern-java/

如果本文对您有所帮助,且您手头还很宽裕,欢迎打赏赞助我,以支付网站服务器和域名费用。 https://paypal.me/wshunli 您的鼓励与支持是我更新的最大动力,我会铭记于心,倾于博客。
本文链接:https://www.wshunli.com/posts/af6d1ac0.html