![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 57
JarvanBest
头脑聪明知识渊博但却不通世事洞察力强语言锐利直指人痛处让人无法反驳的大门不出二门不迈的好奇宝宝兼资深宅男一枚
展开
-
设计模式——模板方法模式
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。一些方法通用,却在每一个子类都重新写了这一方法。有一些通用的方法。将这些通用算法抽象出来。在抽象类实现,其他步骤在子类实现。1、在造房子的时候,地基、走线、水管都一样,只有在建筑的后期才有加壁橱加栅栏等差异。2、西游记里面菩萨定好的 81 难,这就是一个顶层的逻辑骨架。原创 2023-08-05 12:34:33 · 20 阅读 · 0 评论 -
设计模式——外观模式
为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。2、定义系统的入口。客户端不与系统耦合,外观类与系统耦合。在客户端和复杂系统之间再加一层,这一层将调用顺序、依赖关系等处理好。1、去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便。原创 2023-08-05 12:28:38 · 26 阅读 · 0 评论 -
设计模式——适配器模式
将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。1、系统需要使用现有的类,而此类的接口不符合系统的需要。2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。3、通过接口转换,将一个类插入另一个类系中。原创 2023-08-05 12:25:09 · 23 阅读 · 0 评论 -
设计模式——命令模式
将“请求”封装成对象,以便于使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。原创 2023-08-05 12:23:59 · 30 阅读 · 0 评论 -
设计模式——单例模式
确保一个类只有一个实例,并提供一个全局访问点。原创 2023-08-05 12:21:18 · 20 阅读 · 0 评论 -
设计模式——装饰者模式
*工厂方法模式:**定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。依赖倒置原则:要依赖抽象,不要依赖具体类。变量不可以持有具体的类的引用。不要覆盖基类中已实现的方法。不要让类派生自具体类。原创 2023-08-05 12:17:25 · 23 阅读 · 0 评论 -
设计模式——观察者模式
1、如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。**介绍:**定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖都会收到通知并自动更新。**何时使用:**一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。**主要解决:**一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。**如何解决:**使用面向对象技术,可以将这种依赖关系弱化。1、观察者和被观察者是抽象耦合的。原创 2023-08-04 14:51:15 · 22 阅读 · 0 评论 -
设计模式——策略模式
*观察者模式:**定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖都会收到通知并自动更新。装饰者可以在被装饰者的行为前面(与/或)后面加上自己的行为,甚至将被装饰者的行为整个取代掉,而达到特定的目的。定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。装饰者类反映着出被装饰的组件类型(事实上,他们具有相同的类型,都经过接口或继承实现)。在我们的设计中,应该允许行为可以被扩展,而无须修改现有的代码。除了继承,装饰者模式也可以让我们扩展行为。原创 2023-08-04 14:49:36 · 23 阅读 · 0 评论