美文网首页
设计模式的思考、总结

设计模式的思考、总结

作者: 金樽明月 | 来源:发表于2020-01-05 14:09 被阅读0次

前言:

我这篇文章更多的是自己的一些思考,如果想快速入门还是尽早阅读经
典书籍为妙。

个人理解:

设计模式属于是程序设计的思想,是大量实践中总结出来的。学习设计模式首先是先知道有这么一种精巧的设计,然后一定要理解为什么这么设计,最后最重要的就是要在项目中去运用,用具体的场景切实体会到它的好处。

JAVA 23 种设计模式

简单工厂模式、工厂模式、抽象工厂模式

工厂模式隐藏了创建对象的具体细节和复杂过程。
简单工厂模式会包含条件判断。调用者实现相对简单,但是可维护性不好,业务一旦有新的条件,需要修改原有代码。
工厂模式让调用者实现条件判断。对于扩展是开放的,对于修改是封闭的。
抽象工厂模式的方法返回的是抽象工厂,而不是具体的实例类。
对于抽象工厂的根抽象类 IFactory ,书籍介绍可以用反射+配置文件的形式进行优化,但我觉着实际使用某些场景可能不太灵活。理解原理,灵活运用才好。

策略模式

针对某一具体行为的不同场景有不同的算法。核心思想还是封装变化、依赖倒置。

装饰模式

为类已有的功能添加新的功能,或者是把类的核心功能和装饰功能分开
核心类:Component,ConcreteComponent,ConcreteComponentA,Decorator,DecoratorA

代理模式

隐藏真实的实现类,还可以额外添加一些功能。JAVA 通过反射可以实现动态代理。

代理模式与装饰模式的区别

代理,偏重因自己无法完成或自己无需关心,需要他人干涉事件流程,更多的是对对象的控制。
装饰,偏重对原对象功能的扩展,扩展后的对象仍是是对象本身

原型模式

由一个对象 clone 出很多其他对象的模式。JAVA 中 有 clonable 接口,实现很方便。
要注意浅拷贝和深拷贝的影响。

模板模式

将大量重复性的东西封装在父类,子类分别实现不同的部分。根本思想还是封装变化。

外观模式

为复杂的子系统提供统一的接口,很好的体现了迪米特原则。

建造者模式

对象的创建可被有序的分割为多个部分,不同 Builder 的实现不同,Director 控制实现顺序。感觉应该是很复杂的系统才会适用,像 Android 中的 AlertDialogBuilder 都严格算是,但我觉着 AlertDialogBuilder 设计的很好。。。

观察者模式

UI 界面的改变用的比较多。注意面向接口编程。

状态模式

案例:学生分数、state1 state2

适配器模式

类结构适配器模式、对象适配模式、双向适配模式

备忘录模式

主要角色:Originator 、Mementor 、Caretaker

组合模式

例子角色:Component 、LeafComponent、CompositeComponent
优点:对客户端提供统一的接口

迭代器模式

就是自己实现一个单独的迭代器类。。。

单例模式

普通模式、双重锁模式、饿汉式

桥接模式

桥接模式通过组合关系的方式替代继承关系。
桥接模式通常适用于以下场景。
当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展时。
当一个系统不希望使用继承或因为多层次继承导致系统类的个数急剧增加时。
当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时。

命令模式

解耦了请求的发起者和执行者。
主要角色:Receiver、Command、Invoker
命令模式中的命令还可以结合组合模式

职责链模式

有多个对象可以处理请求,并且有一定顺序的时候。

中介者模式

相关文章

  • 设计模式总目录

    写最好的设计模式专栏 【设计模式总结】对常用设计模式的一些思考(未完待续。。。) 一句话设计模式

  • 设计模式的思考、总结

    前言: 我这篇文章更多的是自己的一些思考,如果想快速入门还是尽早阅读经典书籍为妙。 个人理解: 设计模式属于是程序...

  • 单例设计模式

    设计模式 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编码风格、以及解决问题的思考方式 单例设计模式 ...

  • 设计模式之创建型

    设计模式概述 基于设计原则,GoF(设计模式总结4人组)总结了软件开发领域的23个经典设计模式。虽然GoF设计模式...

  • 设计模式之结构型

    设计模式概述 基于设计原则,GoF(设计模式总结4人组)总结了软件开发领域的23个经典设计模式。虽然GoF设计模式...

  • 设计模式之行为型

    设计模式概述 基于设计原则,GoF(设计模式总结4人组)总结了软件开发领域的23个经典设计模式。虽然GoF设计模式...

  • 第三章④设计模式

    设计模式: 在大量实践中总结和理论化,之后优选的代码结构、编程风格、以及解决问题的思考方式。 共有23种设计模式。...

  • 1.单例模式

    1.什么是设计模式 是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就...

  • 设计模式的思考

    思考设计模式

  • 单例模式--java15(11/12/2015)

    设计模式:设计模式是在大量的实践中总结和理论化后优选的代码结构、编程风格、以及解决问题的思考方式。 一共有23种设...

网友评论

      本文标题:设计模式的思考、总结

      本文链接:https://www.haomeiwen.com/subject/warjoctx.html