设计模式
suvue
代码改变世界
展开
-
23种设计模式(9):观察者模式
目录1.概念2.类图3.观察者模式重要元素4.程式范例5.观察者模式的优点6.观察者模式的缺点1.概念观察者模式:定义对象间一种多对一的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。2.类图在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。比如,我们要设计一个右键菜单的功能,只要在软件的有效区域内点击鼠...原创 2020-01-19 17:54:35 · 131 阅读 · 0 评论 -
23中设计模式(8):中介者模式
1.概念中介者模式:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。2.类图3.中介者模式的结构中介者模式又称为调停者模式,从类图中看,共分为3部分:抽象中介者(AbstractMediator):定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子类去实现...原创 2020-01-19 09:49:51 · 176 阅读 · 0 评论 -
23种设计模式(7):原型模式
目录1.概念2.程式范例3.适用性1.概念 原型模式(Prototype Pattern)指定要使用原型实例创建的对象的种类,并通过复制此原型来创建新对象。还记得前几年的多利吗?被克隆的羊!简而言之,通过克隆基于现有的对象创建一个新的对象。 维基百科上对原型模式的解释是这样说的,原型模式是软件开发中的一种创新设计模式。要创建的对象类型由原型实例决定,该实例被克隆以生成一个新对象。简单...原创 2020-01-18 09:42:45 · 178 阅读 · 0 评论 -
23种设计模式(6):代理模式
目录1.概念2.程式范例2.1巫师2.2塔接口2.3象牙塔实现类2.4象牙塔的代理类(相当于例子的门卫)2.5客户端调用者2.6结果打印2.7.小结3.jdk动态代理模式3.1 InvocationHandler接口3.2Proxy类3.3程式范例4.CGLIB动态代理模式4.1程式范例1.概念定义:为另一个对象提供代理,以控制外界对其的访问。 维基百科上的对代理模式是这样解释的,代理是...原创 2020-01-14 22:58:54 · 174 阅读 · 0 评论 -
23种设计模式(5):模板方法模式
目录1.概念2.适用性3.程式范例3.1.抽象类来封装算法的框架和核心算法3.2.播种小麦3.3.播种玉米3.4.农民伯伯3.5.客户端调用者3.6.结果打印4.模板方法模式在JDK1.8中的使用5.模板方法模式在Spring中的使用6.总结1.概念 在父类中定义算法的框架,让子类根据业务需要,来填充框架的具体实现步骤。模板方法使子类可以重新定义算法的某些实现,而无需更改算法的结构。为确...原创 2020-01-13 14:23:32 · 165 阅读 · 0 评论 -
23种设计模式(4):建造者模式
目录1.概念2.为什么要用这个建造者模式呢3.程式范例1.概念定义:建造者模式是把一个物体的构造过程与其本身进行分离,使得相同的构造过程可以创建不同的物体,简而言之,就是构造过程复用。想象一下我们玩角色扮演类游戏的时候,刚开始电脑会让你创建角色,比如选择人物的职业、头发颜色、性别,最后输入一个骚气的昵称,这个创建的过程就算完成了!2.为什么要用这个建造者模式呢答:它是一种创建对象的软件设...原创 2020-01-12 22:26:04 · 187 阅读 · 0 评论 -
23种设计模式(3):抽象工厂模式
目录1.概念2.抽象工厂模式与工厂方法模式的区别3.举个例子加深你的理解4.抽象工厂模式代码实现4.1汽车工厂接口4.2汽车产品接口4.3汽车产品实现4.4汽车工厂实现4.5调用者模拟代码4.6结果打印5.抽象工厂模式的缺点1.概念定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。首先来理解下两个概念:产品等级结构:在编程中,通常一个产品结构,表现为一个产品接口...原创 2020-01-12 16:55:17 · 144 阅读 · 0 评论 -
23种设计模式(2):工厂方法模式
工厂模式根据抽象程度的不同分为三种:简单工厂模式(也叫静态工厂模式)、本文所讲述的工厂方法模式、以及抽象工厂模式。工厂模式的优点:可以使代码结构清晰,有效地封装变化。使得调用者根本无需关心产品的实例化过程,只需依赖工厂即可得到自己想要的产品。对调用者屏蔽具体的产品类。让调用者只关心产品的接口,这样即使我们对产品类变更了具体的实现,对调用者来说没有任何影响。工厂方法模式的四要素...原创 2020-01-11 13:08:42 · 222 阅读 · 0 评论 -
23中设计模式(1):单例模式
目录1.设计要点2.实现方式3.优点4.使用注意事项5.单例模式在spring框架中应用6.单例对象究竟会不被GC垃圾回收机制回收呢?定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。1.设计要点构造方法私有化。有指向自己实例的静态私有引用。有对外提供自身实例的静态公有方法。2.实现方式根据实例化对象时机的不同分为三种:一种是饿汉式单例,一种是懒汉式单例,还...原创 2020-01-09 23:17:16 · 262 阅读 · 0 评论 -
设计模式概论
设计模式(Design pattern)是很多程序员总结出来的优秀实践。保证了代码的可重用性、易读性以及代码的可靠性。设计模式使代码编制真正实现工程化,它是是软件工程的基石脉络,如同大厦的结构一样。 提到设计模式,不得不感谢GoF(Gang of Four,四人组),他们1995年出版的《设计模式》一书,第一次将设计模式提升到理论高度,并将之规范化。书中一共总结了23种基本的设计模式。...原创 2020-01-09 23:14:14 · 228 阅读 · 0 评论