java 设计模式原则及23种设计具体模式

sancaiodm Java 2021-12-05 801 0

为什么要学习设计模式?

个人认为一个软件的好坏在于其逻辑的顶层父类的抽象层架构合理可重复可扩展,那么你底层的具体实现需要考虑的就仅仅是一些行为算法和一些具体的业务实现了。

对扩展开放,对修改关闭

对外扩展开放,对内修改关闭

它目的就是为了写出可复用、可扩展、高内聚、低耦合的代码。

1、单一职责

  一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。不过在现实开发中,这个原则是最不可能遵守的,因为每个人对一个类的哪些功能算是同一类型的职责判断都不相同。

2、开放封闭原则

  软件实体应该是可扩展,而不可修改的。也就是说,你写完一个类,要想添加功能,不能修改原有类,而是想办法扩展该类。即对扩展开放,对修改关闭。

3、里氏替换原则

  当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系。也就是说接口或父类出现的地方,实现接口的类或子类可以代入,这主要依赖于多态和继承。

4、 接口分离原则

  (1)不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好。

  (2)不要提供一个大的接口包括所有功能,应该根据功能把这些接口分割,减少依赖。

5、依赖倒置原则

  (1)高层模块不应该依赖于低层模块,二者都应该依赖于抽象

  (2)抽象不应该依赖于细节,细节应该依赖于抽象


创建型模式:共5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式


结构型模式:共7种:适配器模式、装饰器模式、代理模式、桥接模式、外观模式、组合模式、享元模式


行为型模式:共11种:策略模式、模板方法模式、观察者模式、责任链模式、访问者模式、中介者模式、迭代器模式、命令模式、状态模式、备忘录模式、解释器模式


评论