Java—23种设计模式(一)什么是设计模式?

1.什么是设计模式/h2>

         “每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。

 这样,你就能一次又一次地使用该方案而不必做重复劳动”

 2.设计模式的作用

             设计模式的作用就是在稳定和变化之间寻找隔离点

             ,然后分离它们,从而来管理变化。

          (假设代码都是不稳定的,那这个时候设计模式就失去了作用;

            假设代码都是稳定的,那这个时候设计模式也失去了作用)

3.对于复杂问题人们如何解决

         1.分而治之原则

              人们喜欢将大问题分解成很多小问题这样,将复杂的问题分解为很多简单的问题

               但是代码复用性差,违背了依赖倒置的原则。

          2.人们处理复杂性有一个通用的技术,即抽象。

               由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,

               而去处理泛化和理想化了的对象模型,复用性高

4.面向对象设计原则

单一职责原则    定义:一个类只负责一个领域的相应职责 

开闭原则  定义:软件实体应对扩展开放,而对修改关闭

里氏替换原则  定义:所有引用基类的对象能够透明的使用其子类的对象

依赖倒转原则  定义:抽象不应该依赖于细节,细节依赖于抽象

接口隔离原则  定义:使用多个专门的接口,而不是使用单一总接口

合成复用原则  定义:尽量使用对象组合,而不是继承来达到复合目的

迪米特法则  定义:一个软件实体应当尽可能少的与其它实体发生相互作用

这七个设计模式对应的demo

分别是什么呀留坑代填

5.重构的原则

  1. 静态 → 动态
  2. 早绑定 → 晚绑定
  3. 继承 → 组合
  4. 编译时依赖 → 运行时依赖
  5. 紧耦合 → 松耦合

6.设计模式的分类

  创建型模式:

对类的实例化过程的抽象。一些系统在创建对象时,需要动态地决定怎样创建对象,创建哪些对象,以及如何组合和表示这些对象。创建模式描述了怎样构造和封装这些动态的决定。包含类的创建模式和对象的创建模式。

工厂模式(Factory Pattern)

抽象工厂模式(Abstract Factory Pattern)

单例模式(Singleton Pattern)

建造者模式(Builder Pattern)

原型模式(Prototype Pattern

 

 

结构型模式:

描述如何将类或对象结合在一起形成更大的结构。

分为类的结构模式和对象的结构模式。

类的结构模式使用继承把类,接口等组合在一起,以形成更大的结构。

类的结构模式是静态的。对象的结构模式描述怎样把各种不同类型的对象组合在一起,以实现新的功能的方法。对象的结构模式是动态的。

适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
过滤器模式(Filter、Criteria Pattern)
组合模式(Composite Pattern)
装饰器模式(Decorator Pattern)
外观模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
 

 

行为型模式:

      对在不同的对象之间划分责任和算法的抽象化。

      不仅仅是关于类和对象的,并是关于他们之间的相互作用。

      类的行为模式使用继承关系在几个类之间分配行为。对象的行为模式则使用对象的聚合来分配行为。

     特别关注对象之间的通信

责任链模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解释器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
备忘录模式(Memento Pattern)
观察者模式(Observer Pattern)
状态模式(State Pattern)
空对象模式(Null Object Pattern)
策略模式(Strategy Pattern)
模板模式(Template Pattern)
访问者模式(Visitor Pattern)

7.常用设计模式有哪些

设计模式使用频率排行

 

创建型               Singleton           单例                    保证一个类只有一个实例,并提供一个访问它的全局访问点。

结构型                Proxy                 代理                   为其他对象提供一种代理以控制对这个对象的访问

行为型                Observer         观察者                       定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知自动更新。

行为型             Template Method    模板方法                       定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,Template Method使得子类可以不改变一个算法的结构即可以重定义该算法得某些特定步骤。

创建型             Factory Method        工厂方法

定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到了子类。

结构型             Adapter                    适配器

将一类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作那些类可以一起工作。

结构型             Decorator                      装饰

动态地给一个对象增加一些额外的职责,就增加的功能来说,Decorator模式相比生成子类更加灵活。

行为型              trategy                          策略模式

定义一系列的算法,把他们一个个封装起来,并使他们可以互相替换,本模式使得算法可以独立于使用它们的客户。

创建型           Prototype                            原型

用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。

 

        

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92321 人正在系统学习中

来源:孔汤姆

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年3月1日
下一篇 2019年3月1日

相关推荐