![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
土著神的顶点
这个作者很懒,什么都没留下…
展开
-
观察者模式
观察者模式1、概念 观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。2、目的 一个对象状态改变,所有的依赖对象都将得到通知。3、解决方案 定义一个Subject接口,作为主题(被观察者),它把所有对观察者对象的引用文件存在了一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供了一个接口,可以增加转载 2020-12-23 23:45:55 · 233 阅读 · 0 评论 -
适配器模式
适配器模式1、概念 定义一个包装类将一个类的接口转换为调用方希望的另一个接口。包装类称为适配器Adapter,被包装的类一般称为适配者Adaptee。2、目的 把由于接口不匹配而无法一起工作的两个类通过适配器给连接起来,使其能够一起工作。3、解决方案类适配器模式:通过继承Adaptee类和实现Adapter接口进行匹配,将适配者Adaptee的API转换为调用方希望的API。对象适配器模式通过委派关系进行匹配,即适配器Adapter包装了适配者Adaptee的一个实例,对外提供原创 2020-12-23 23:12:15 · 174 阅读 · 0 评论 -
模板方法模式
模板方法模式1、概念定义一个操作中的算法框架,而将一写步骤延迟到子类中去实现,使子类可以不改变一个算法的结构即可重定义该算法的部分步骤。2、目的封装不变的部分,扩展可变的部分。把我们不知道具体实现的步骤封装成抽象方法,提供一个按正确顺序调用它们的具体方法(这些具体方法统称为“模板方法”),这样构成一个抽象基类。子类通过继承这个抽象基类去实现各个步骤的抽象方法,而工作流程却由父类控制。3、解决方案 准备一个抽象类,定义一个操作中的算法的骨架,将一些步骤声明为抽象方法迫使子类去实现。不原创 2020-12-22 23:57:43 · 122 阅读 · 0 评论 -
门面模式
门面模式1、概念提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。本质:就是化零为整;引入一个中介类,把各个分散的功能组合成一个整体,只对外暴露一个统一的接口;这两年流行微服务,即化整为零,把一个大服务拆分成一个个零部件;而门面模式则是反其道,是化零为整;2、目的为了用户使用方便,把过度拆分的分散功能,组合成一个整体,对外提供一个统一的接口。3、解决方案本质:引入一个第三方中介类,这个类集合了多个零部件类的转载 2020-12-22 22:59:30 · 189 阅读 · 0 评论 -
策略模式
设计模式之策略模式1、概念(1)什么是策略模式?定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式保护策略接口、具体策略类及上下文角色。策略接口用来定义算法,如下方例子的StudyStatus;具体策略类用来实现策略接口,实现不同的算法,一般都会有多个策略类,如下方例子的BuddhismStudy、PlayAndStudy、OvernightStudy;上下文角色是用来屏蔽高层模块对策略的直接访问,起承上启下的作用。如下方例子中的CollegeStudents就是上下文角色,原创 2020-12-21 22:59:22 · 143 阅读 · 0 评论 -
工厂模式
设计模式之工厂模式1、概念(1)什么是工厂模式?工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。(2)为什么用工厂模式?可以让调用方不需要负责对象的创建,明确了各个类的职责。实现了调用方和工厂的解耦,后期维护容易。2、工厂模式的三种模式(1):简单(静态)工厂模式该模式对对象创建管理方式最为简单,因为其仅仅简单的对不同类对象的创建转载 2020-12-21 22:03:51 · 127 阅读 · 0 评论 -
装饰模式
装饰模式1、概念(1)什么是装饰模式? 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。(2)为什么用装饰模式? 需要对原有对象的功能进行扩展的时候、需要动态地给一个对象增加功能,并可以动态地撤销时、需要为一批的兄弟类进行改装或加装功能时。 一般来说扩展一个对象的功能的方式有三种:继承、装饰器模式、代理模式。 继承:也可以通过继承父类、子类扩展的方式对功能进行扩展。缺点是 1、无法获取父类的私有属性原创 2020-12-20 21:29:07 · 174 阅读 · 0 评论 -
代理模式
代理模式1、概念(1)什么是代理模式? 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举个例子:要买某个东西时,我们不用自己费劲挑选,可以直接问朋友推荐买哪个东西,然后告诉我们直接买就行了。这时朋友就充当了代理的角色。(2)为什么用代理模式? **中介隔离作用:**在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。原创 2020-12-20 16:52:16 · 109 阅读 · 0 评论