设计模式
文章平均质量分 84
寻常记
这个作者很懒,什么都没留下…
展开
-
原型模式[读书笔记]
原型模式(Prototype Pattern) 原型模式:使用原型实例只当创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。 Protype(抽象原型类):声明克隆方法的接口或抽象类,是所有具体原形类的公共父类。 ConcreteProtype(具体原型类):被复制的对象,实现在抽象原型中声明的克隆方法,返回自己的一个克隆对象。 伪代码 //抽象原型 public interface Prototype<T>{ T clone(); } //具体原型 publi原创 2021-09-28 10:55:14 · 158 阅读 · 0 评论 -
迭代器模式[读书笔记]
迭代器模式(Iterator Pattern) 迭代器模式:提供一种按顺序访问集合/容器对象元素的方法,而又无需暴露集合内部表示。迭代器模式可以为不同的容器提供一致的遍历行为,不用关心容器内元素的组成结构,属于行为型设计模式。 迭代器模式的本质是把集合对象的迭代行为抽离到迭代器中,提供一致的访问接口。 我们把多个对象聚在一起形成的总体称为集合(Aggregate),集合对象是能够包容一组对象的容器对象,不同的集合其内部元素的聚合结构可能不同,而迭代器模式屏蔽了内部元素的获取细节,为外部提供一致的元素访问行为原创 2021-09-26 10:52:26 · 163 阅读 · 0 评论 -
模板方式模式[读书笔记]
在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单、吃东西、买单等几个步骤,通常情况下这几个步骤的次序是:点单 --> 吃东西 --> 买单。 模板方式模式 模板方式模式(Template Method Pattern):模板方式模式实际上封装了一个固定流程,该流程由几个步骤组成,具体步骤可以由子类进行不同的实现,从而让固定的流程产生不同的结果。其实就是类的继承机制,本质是抽象封装流程,具体进行实现。 当完成一个操作具有固定的流程时,由抽象固定流程步骤,具体步.原创 2021-09-25 10:41:23 · 164 阅读 · 0 评论 -
适配器模式[读书笔记]
我的笔记本电脑的工作电压是20V,而我国的家庭用电是220V,如何让20V的笔记本电脑能够在220V的电压下工作?答案是引入一个电源适配器(AC Adapter),俗称充电器或变压器,有了这个电源适配器,生活用电和笔记本电脑即可兼容 适配器模式(Adapter Pattern) 适配器模式:又叫做变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法在一起工作的两个类能够在一起工作,属于结构性设计模式。 在软件开发中,基本上任何问题都可以通过增加一个中间层来解.原创 2021-09-25 10:13:34 · 219 阅读 · 0 评论 -
门面模式[读书笔记]
门面模式(Facade Pattern) 门面模式:又叫做外观模式,提供一个统一的入口,用来访问子系统中的一群接口。其主要特征是定义了一个高层接口,让子系统更容易使用。 门面模式是迪米特法则的体现:一个软件实体应当尽可能少地与其他实体发生相互作用 设计思想 Facade (外观角色):客户端可以调用它的方法,在外观角色中可以知道相关子系统(一个或者多个)的功能和责任;在正常情况下,外观角色将所有从客户端发来的请求委派到相应的子系统去,传递给相应的子系统对象处理。 SubSystem(子系统角色):在软件系原创 2021-09-24 09:22:47 · 93 阅读 · 0 评论 -
建造者模式[读书笔记]
无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象,而无须知道其内部的具体构造细节。 建设者模式 建设者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使.原创 2021-09-23 10:34:50 · 105 阅读 · 0 评论 -
代理模式[读书笔记]
在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端与目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。 代理模式(Proxy Pattern) ...原创 2021-09-19 11:49:36 · 123 阅读 · 0 评论 -
单例模式[读书笔记]
对于系统中的某些类来说,只有一个实例很重要,例如,一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。当这个唯一实例创建成功之后,我们无法再创建一个同类型的其他对象,所有的操作都只能基于这个唯一实例。为了确保对象的唯一性且易于访问,我们可以通过单例模式来实现,这就是单例模式的动机所在。 单例模式 单例模式(Singleton Pattern):必须确保类只有一个实例,而且自行实例化向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。 单例模式的要点有三个.原创 2021-09-16 11:41:53 · 93 阅读 · 0 评论 -
抽象工厂模式[读书笔记]
在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象。 产品等级结构和产品族 产品等级结构:产品等级结构即产品的继承结构,如一个抽象类是电视机,其子类有海尔电视机,乐视电视机,TCL电视机,则抽象电视机与具体品牌的电视机构成了产品等级结构,抽象电视机是父类,具体品牌的电视机是子类。 产品族:在抽象工厂模式中,产品族是指由同一.原创 2021-09-16 09:24:32 · 96 阅读 · 0 评论 -
工厂方法模式[读书笔记]
简单工厂模式虽然简单,但存在一个很严重的问题。当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代码,将违背“开闭原则”,如何实现增加新产品而不影响已有代码?工厂方法模式应运而生 工厂方法模式 工厂方法模式(Factory Method Pattern)又叫作多态性工厂模式,指定义一个创建对象的工厂接口,但由实现这个接口的工厂类决定来实例哪个类,工厂方法把类的实例化推迟到子类中。 设计思想 抽象工厂(Factory):声明了工厂方法,用于返回产品。.原创 2021-09-15 11:01:23 · 81 阅读 · 0 评论 -
简单工厂模式[读书笔记]
我们都知道在现实生活中,原始社会自给自足(没有工厂),农耕社会小作坊(简单工厂,民间酒坊),工业革命流水线(工厂方法,自产自销),现代产业链代工厂(抽象工厂,富士康)。我们的项目代码同样是由简至繁一步一步迭代而来的,但对于调用者来说,却越来越简单。在日常开发中,凡是需要生成复杂对象的地方,都可以尝试考虑使用工厂模式来代替。原创 2021-09-15 10:18:46 · 167 阅读 · 0 评论