设计模式

设计原则:
1.单一职责原则:一个类只专注于做一件事;高内聚,低耦合;
2.开闭原则:对拓展开放,对修改关闭(尽可能不动原有代码进行拓展);
3.里氏代换原则:子类必须能够替换它们的基类型,基类与子类可互换,客户端没有察觉情况下;
4.依赖倒置原则:面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。
5.接口隔离原则:使用多个专一功能的接口比使用一个总接口总要好,但不能过渡;一个接口不能过于臃肿;
6.迪米特法则:又叫最少知识原则;对象与对象之间应该使用尽可能少的方法来关联,避免千丝万缕的关系;类知道其他类应尽量少;类可以访问其他类的方法或者属性也应尽量少;

 

 

1.策略模式  

策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数。

 

eg:京东,美团,饿百拿到自己的业务对象,实现自己的逻辑

 

 

 

 

 

 

 

2.模板方法

一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用

 

 

 

 

 

3.观察者模式

观察者模式很好理解,类似于邮件订阅和RSS订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你。其实,简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系。

 

4.代理模式

代理模式就是多一个代理类出来,替原对象进行一些操作。

比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法

 

 

 

 

 

 

 

 

 

 

 

5.单例模式

在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:
1、,对于一些大型的对象创建比较复杂,这是一笔很大的系统开销。
2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。
3.有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。
 
 

 

 

6.工厂方法模式

6.1普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建

6.2多个工厂方法模式:是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象

6.3静态工厂方法模式 :将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可

 

7.抽象工厂模式

创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码

8.适配器模式

适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。

 

9.装饰模式

装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例

 

posted @ 2021-11-10 15:21  雪域飞魂  阅读(36)  评论(0)    收藏  举报