设计模式
文章平均质量分 94
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
源码:https://gitee.com/yanyuan/gof23
yanyuan1024
纸上得来终觉浅,绝知此事要躬行。
https://gitee.com/yanyuan
展开
-
设计模式总结
设计模式六大原则:单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则,开闭原则。 三大类别:建造型,结构型,行为型。原创 2020-07-14 18:57:27 · 184 阅读 · 0 评论 -
UML类图详解
在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。建模工具也主要根据类图来产生代码。类图在UML的9个图中占据了一个相当重要的地位。UML创始人对类的定义是:类是具有相似结构、行为和关系的一组对象的描述符。类是面向对象系统中最重要的构造块。类图显示了一组类、接口、协作以及他们之间的关系。在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统。类加上他们之间的关系就构成了类图,类图中还可以包含接口、包等元素,也可以包括对象、链等原创 2020-06-18 14:13:36 · 904 阅读 · 0 评论 -
如何系统学习设计模式
灵魂三问第一问, 什么是设计模式?设计模式是在软件工程实践过程中,JAVA使用者们总结出的良好的编程方法,使用设计模式能够增加系统的健壮性,易修改性和可扩展性,当你进行开发的软件规模比较大的时候,良好的设计模式会给编程带来便利,让系统更加稳定。第二问,为什么要学习设计模式?普遍的目的:别人都说要学,别人都说好,所以我要学面试会被问,所以必须学读源码时看到别人在用,不学看不懂源码为什...原创 2020-04-22 10:43:08 · 198 阅读 · 0 评论 -
设计模式之模板方法模式(二十三)
模板方法模式在父类中提取了公共的部分代码,便于代码复用。部分方法是由子类实现的,因此子类可以通过扩展方式增加相应的功能,符合开闭原则。原创 2020-07-08 21:02:07 · 154 阅读 · 0 评论 -
设计模式之策略模式(二十二)
策略模式在主要解决有多种算法的情况下, 动态选择算法,避免 if, else 所带来的复杂和难以维护。原创 2020-07-08 13:13:25 · 180 阅读 · 0 评论 -
设计模式之状态模式(二十一)
使用状态模式替换多重if,嵌套if原创 2020-07-07 13:28:04 · 184 阅读 · 0 评论 -
设计模式之观察者模式(二十)
使用观察者模式实现订阅天气。原创 2020-07-06 20:58:11 · 107 阅读 · 0 评论 -
设计模式之备忘录模式(十九)
游戲存檔設計原创 2020-07-06 14:33:47 · 1443 阅读 · 0 评论 -
设计模式之迭代器模式(十八)
迭代器模式提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。原创 2020-06-16 22:26:08 · 114 阅读 · 0 评论 -
设计模式之中介者模式(十七)
在中介者模式中通过引用中介者对象,将系统中有关的对象所引用的其他对象数目减少到最少。它简化了系统的结构,将系统由负责的网状结构转变成简单的星形结构,中介者对象在这里起到中转和协调作用。原创 2020-06-11 23:08:44 · 123 阅读 · 0 评论 -
设计模式之解释器模式(十六)
解释器模式中使用类来表示语言的文法规则,可以通过继承等机制来改变或扩展文法。原创 2020-06-10 20:05:18 · 89 阅读 · 0 评论 -
设计模式之命令模式(十五)
命令模式将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。原创 2020-06-02 20:00:58 · 162 阅读 · 0 评论 -
设计模式之职责链模式(十四)
责链模式将请求的发送者和接受者解耦了。客户端不需要知道请求处理者的明确信息,甚至不需要知道链的结构,它只需要将请求进行发送即可。原创 2020-05-05 23:02:55 · 243 阅读 · 0 评论 -
设计模式之代理模式(十三)
代理模式就是给一个对象提供一个代理,并由代理对象控制对原对象的引用。在代理模式中,“第三者”代理主要是起到一个中介的作用,它连接客户端和目标对象。原创 2020-05-05 12:45:45 · 152 阅读 · 0 评论 -
设计模式之享元模式(十二)
享元模式就是运行共享技术有效地支持大量细粒度(对象相似度较高的属性)对对象的复用,系统使用少量的对象,而且这些都比较相似,状态变化小,可以实现对象的多次复用。原创 2020-04-30 21:57:23 · 104 阅读 · 0 评论 -
设计模式之外观模式(十一)
外观模式是为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。 外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。原创 2020-04-26 22:10:24 · 127 阅读 · 0 评论 -
设计模式之装饰者模式(十)
装饰模式指的是在不必改变原类文件和使用继承(也是与适配器模式不一样的地方)的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。原创 2020-04-23 23:05:41 · 233 阅读 · 0 评论 -
设计模式之组合模式(九)
组合模式组合多个对象行成树结构以表示“整体-部分”的结构层次。参考JDK中list.addAll()方法原创 2020-04-23 10:04:29 · 125 阅读 · 0 评论 -
设计模式之桥接模式(八)
桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。 降低了类与类之间的耦合度:脱耦就是将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联,将两个角色之间的继承关系改为关联关系。原创 2020-04-22 22:00:04 · 176 阅读 · 0 评论 -
设计模式之原型模式(六)
浅拷贝:使用一个已知实例对新创建实例的成员变量逐个赋值,这个方式被称为浅拷贝。(其实是对值的地址引用), 深拷贝:当一个类的拷贝构造方法,不仅要复制对象的所有非引用成员变量值,还要为引用类型的成员变量创建新的实例,并且初始化为形式参数实例值。原创 2020-04-21 09:40:31 · 191 阅读 · 0 评论 -
设计模式之建造者模式(五)
建造者模式构建复杂对象就像造汽车一样,是一个一个组件一个一个步骤创建出来的,它允许用户通过制定的对象类型和内容来创建他们,但是用户并不需要知道这个复杂对象是如何构建的,它只需要明白通过这样做我可以得到一个完整的复杂对象实例。原创 2020-04-20 09:22:34 · 248 阅读 · 0 评论 -
设计模式之单例模式(四)
单例模式就是确保某一个类只有一个实例,并且提供一个全局访问点。单例模式有如下几个特点:它只有一个实例。它必须要自行实例化。它必须自行向整个系统提供访问点。原创 2020-04-19 22:39:25 · 104 阅读 · 0 评论 -
设计模式之抽象工厂模式(三)
抽象工厂模式提供一个接口,用户创建相关或者依赖对象的家族,而不需要明确指定具体类。抽象工厂允许客户端使用抽象的接口来创建一组相关的产品,而不需要关系实际产出的具体产品是什么,这样一来客户可以从具体的产品关系中解耦。原创 2020-04-17 23:36:42 · 171 阅读 · 0 评论 -
设计模式之工厂模式(二)
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法模式让实例化推迟到子类。原创 2020-04-15 09:54:51 · 148 阅读 · 0 评论 -
设计模式之简单工厂模式 (一)
简单工厂模式又称之为静态工厂方法,属于创建型模式。在简单工厂模式中,可以根据传递的参数不同,返回不同类的实例。简单工厂模式定义了一个类,这个类专门用于创建其他类的实例,这些被创建的类都有一个共同的父类。原创 2020-04-14 22:47:44 · 118 阅读 · 0 评论