23种设计模式
养了一只猪
这个作者很懒,什么都没留下…
展开
-
二十三种设计模式之:(十一)装饰器模式
Decorator 装饰器模式:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。优点:装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用通过使用不同装饰类及这些装饰类的排列组合,可以实现不同效果装饰器模式完全遵守开闭原则缺点: 装饰模式会增加许多子类,过度使用会增加程序得复杂性。实例: 对已有功能扩展,比如对一个人的姓名字符串添加后缀(只是演示)//父类接口interface P.原创 2021-02-18 18:21:36 · 205 阅读 · 0 评论 -
二十三种设计模式之:(十) 原型模式
Prototype 原型模式:(实际也叫克隆模式)用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节原型模式的优点:Java 自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一个对象更加优良可以使用深克隆方式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,简化了创建对象的过程,以便 - 在需要的时候使用(例如恢复到历史某一状态),可辅助实.原创 2021-02-14 03:31:18 · 218 阅读 · 0 评论 -
二十三种设计模式之:(九) 责任链模式
ChainOfResponsibility 责任链模式:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。【例1】用责任链模式设计一个请假条审批模块。分析:假如规定学生请假小于或等于 2 天,班主任可以批准;小于或等于 7 天,系主任可以批准;小于或等于 10 天,院长可以批准;其他情况不予批准;这个实例适合使用职责链模式实现。首先,定义一个领导类(Leader),它是抽.原创 2021-02-13 18:54:55 · 211 阅读 · 0 评论 -
二十三种设计模式之:(八)迭代器模式
Iterator 迭代器模式:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。迭代器模式是一种对象行为型模式优点:访问一个聚合对象的内容而无须暴露它的内部表示。遍历任务交由迭代器完成,这简化了聚合类。它支持以不同方式遍历一个聚合,甚至可以自定义迭代器的子类以支持新的遍历。增加新的聚合类和迭代器类都很方便,无须修改原有代码。封装性良好,为遍历不同的聚合结构提供一个统一的接口。缺点:增加了类的个数,这在一定程度上增加了系统的复杂性。**注:**在日常开发中.原创 2021-02-13 18:13:51 · 115 阅读 · 0 评论 -
二十三种设计模式之:(七)观察者模式
Observer 观察者模式:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。实例:(马老师视频讲解实例)模拟孩子醒了就会哭,哭的话就会触发爸爸妈妈喂他的事件public interface Observer { //观察者接口,如果观察对象触发了,执行下面的方法 void actionOnWakeUp(wakeUpEvent event);}class Chi.原创 2021-02-13 17:26:37 · 143 阅读 · 0 评论 -
二十三种设计模式之:(六)模板方法模式
TemplateMethod 模板方法模式:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。大白话:去银行办理业务,一共有4个流程: 取号,排队,办理具体业务,对工作人员评价。其中取号,排队,评价是固定的,每个人去银行办理业务都要经历这三个步骤。但是办理具体业务是不同的:有的人取款,有的存款,有的咨询等等。那么就可以定义一个父类(抽象类),把固定的步骤,流程实现了。不能固定的业务逻辑,让子类去实现。实例.原创 2021-02-13 02:36:36 · 101 阅读 · 0 评论 -
二十三种设计模式之:(五)适配器模式
Adapter 适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。大白话:说中文的人不能直接跟说英文的人沟通, 那么就需要一个翻译。这个翻译就是适配器。中国220V电压,外国很多都是110V电压,可以用一个变压器转换头。这个变压器转换头就是适配器。类适配器模式:public class Cl.原创 2021-02-13 02:18:49 · 104 阅读 · 0 评论 -
二十三种设计模式之:(四)Builder 建造者模式
Builder 构建器模式(建造者模式) :指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。实例:public class Builder { //我们在使用的使用,用到哪些属性,设置哪些属性就行,不用每个都设置,空的传null。 Person p = new Person.PersonB.原创 2021-02-13 01:10:01 · 123 阅读 · 0 评论 -
二十三种设计模式之:(三)抽象工厂模式
抽象工厂是对抽象方法模式的一次升级, 抽象方法模式只是对一类产品的生产,比如上节说的animal(动物类), 抽象方法模式则可以对多种产品生产。可以是动物,可以是植物,可以是电子产品等等使用抽象工厂模式一般要满足以下条件。系统中有多个产品族,每个具体工厂创建同一族但属于不同等级结构的产品。系统一次只可能消费其中某一族产品,即同族的产品一起使用。抽象工厂模式除了具有工厂方法模式的优点外,其他主要优点如下。可以在类的内部对产品族中相关联的多等级产品共同管理,而不必专门引入多个新的类来进行管理。当.原创 2021-02-13 00:45:26 · 123 阅读 · 0 评论 -
二十三种设计模式之:(二)工厂方法
工厂模式的定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。简单工厂按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式.原创 2021-02-12 23:53:29 · 128 阅读 · 0 评论 -
二十三种设计模式简介
23种设计模式总的来说可以分为三大类,遵循六大原则1、三大类1、 创建型 涉及对象的实例化,特点是不让用户代码依赖于对象的创建或排列方式,避免用户直接使用new创建对象。共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式2、 结构型 结构型涉及如何组合类和对象以形成更大的结构,和类有关的结构型模式涉及如何合理使用继承机制;和对象有关的结...原创 2018-01-30 16:01:57 · 304 阅读 · 0 评论 -
二十三种设计模式之:(一)单例模式
Ensure a class only has one instance,and provide a global point of access to it. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。优点:它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导致的逻辑错误。如果一个对象有可能贯穿整个应用程序,原创 2018-02-05 09:32:33 · 196 阅读 · 0 评论