随笔分类 -  java24种设计者模式

摘要:创建型模式:关注对象的创建过程 1、单例​模式: 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点 主要: 饿汉式(线程安全,调用效率高,但是不能延时加载) 懒汉式(线程安全,调用效率不高,但是可以延时加载) 其他: 双重检测锁式(由于JVM底层内部模型原因,偶尔会出问题。不建议使用) 静 阅读全文
posted @ 2022-02-09 17:53 威兰达 阅读(68) 评论(0) 推荐(0) 编辑
摘要:创建型: 单例模式 简单工厂模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构型: 代理模式 适配器模式 装饰器模式 桥接模式 组合模式 享元模式 外观模式 行为型: 观察者模式 ;模板方法模式; 命令模式; 状态模式; 职责链模式 ;解释器模式; 中介者模式; 访问者模式; 策略模式 ; 阅读全文
posted @ 2019-06-28 17:06 威兰达 阅读(217) 评论(0) 推荐(0) 编辑
摘要:定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 使用场景:解释器模式需要解决的是,如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题 阅读全文
posted @ 2019-06-28 17:01 威兰达 阅读(335) 评论(0) 推荐(1) 编辑
摘要:定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 定义比较简单,总结一下是通过实例指定种类,通过拷贝创建对象。 在JAVA语言中使用原型模式是非常简单的,这是因为Object类当中提供了一个本地方法clone,而JAVA中的任何类只要实现了Cloneable标识接口,就可以使用 阅读全文
posted @ 2019-06-28 16:44 威兰达 阅读(417) 评论(0) 推荐(0) 编辑
摘要:定义(源于GoF《Design Pattern》):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。 初次接触,定义会显得晦涩并且难于理解,没关系,LZ来陪着各位一起一点一点分析定义中所提到的关键点。 先来看第一句话,说是一个作用于某对象结构中 阅读全文
posted @ 2019-06-28 14:38 威兰达 阅读(426) 评论(0) 推荐(0) 编辑
摘要:定义:(源于Design Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 上述是百度百科中对状态模式的定义,定义很简单,只有一句话,请各位形象的去理解这句话,它说当状态改变时,这个对象的行为也会变,而看起来就像是这个类改变了一样。 这正是应验了我们那句话, 阅读全文
posted @ 2019-06-28 10:46 威兰达 阅读(274) 评论(0) 推荐(0) 编辑
摘要:定义:为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 “看这个定义,就是将一堆可以处理请求的对象连成一条链,然后一个一个试着处理请求。这好像是可以解决麦当劳订餐的问题的,我先来看看我刚才苦B的订餐过 阅读全文
posted @ 2019-06-28 10:16 威兰达 阅读(485) 评论(0) 推荐(0) 编辑
摘要:定义:(GoF《设计模式》):将对象组合成树形结构以表示“部分整体”的层次结构。 组合模式使得用户对单个对象和组合对象的使用具有一致性。 从定义中可以看出,组合模式用来表示部分与整体的层次结构(类似于树结构),而且也可以使用户对单个对象(叶子节点)以及组合对象(非叶子节点)的使用具有一致性,一致性的 阅读全文
posted @ 2019-06-27 17:31 威兰达 阅读(759) 评论(0) 推荐(0) 编辑
摘要:定义:享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它 阅读全文
posted @ 2019-06-27 16:00 威兰达 阅读(320) 评论(0) 推荐(0) 编辑
摘要:定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。 从定义中可以看出,迭代器模式是为了在不暴露该对象内部表示的情况下,提供一种顺序访问聚合对象中元素的方法。这种思想在JAVA集合框架中已经体现的淋漓尽致,而且LZ相信每一个接触JAVA的同学都难免要去触碰。 所以LZ这次 阅读全文
posted @ 2019-06-27 15:16 威兰达 阅读(404) 评论(0) 推荐(0) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述备忘录(Memento)模式的: 备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉 阅读全文
posted @ 2019-06-27 11:54 威兰达 阅读(402) 评论(0) 推荐(1) 编辑
摘要:在阎宏博士的《JAVA与模式》一书中开头是这样描述建造(Builder)模式的: 建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 产品的内部表象 一个产品常 阅读全文
posted @ 2019-06-27 11:22 威兰达 阅读(382) 评论(0) 推荐(0) 编辑
摘要:桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。 桥梁模式的用意 桥梁模式虽然不是一个使用频率很高的模式,但是熟悉这 阅读全文
posted @ 2019-06-27 10:26 威兰达 阅读(661) 评论(0) 推荐(0) 编辑
摘要:中介者模式:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式,它是一种对象行为型模式。 “按照当年六道天人所说,这秘籍当中所说的一系列的对象,应该就是指的各个门派了吧。现在各个门派之间相互单独交往 阅读全文
posted @ 2019-06-26 17:11 威兰达 阅读(235) 评论(0) 推荐(0) 编辑
摘要:案例:“由于公司的制度不完善,人员缺乏,导致业务人员一有什么事情,全部都来找自己。本来自己就已经身兼数职,现在还要每天面临业务员们的各种炮轰,实在是有点受不了啊。” 于是,小左想着想着,就打算将这个问题写出来,看能不能从代码里找到现实中解决问题的答案。在键盘前犹豫片刻后,小左先把自己用JAVA代码解 阅读全文
posted @ 2019-06-26 16:28 威兰达 阅读(408) 评论(0) 推荐(0) 编辑
摘要:定义:外观模式是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。 该定义引自百度百科,它的表现很简单,将一系列子接口的功能进行整理,从而产生一个更高层的接口。 相信做JAVA的各位大部分是WEB开发,那么肯定都对XXXDao,XXXSe 阅读全文
posted @ 2019-06-26 16:08 威兰达 阅读(678) 评论(1) 推荐(1) 编辑
摘要:定义:装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 这一个解释,引自百度百科,我们注意其中的几点。 1,不改变原类文件。 2,不使用继承。 3,动态扩展。 上述三句话一语道出了装饰器模式的特点,下面LZ给出装饰器模式 阅读全文
posted @ 2019-06-26 15:25 威兰达 阅读(561) 评论(0) 推荐(0) 编辑
摘要:模板方法模式,一般是为了统一子类的算法实现步骤,所使用的一种手段或者说是方式。它在父类中定义一系列算法的步骤,而将具体的实现都推迟到子类。 最典型的形式就是一个接口,一个抽象父类,父类中会有一系列的抽象方法,而在子类中去一一实现这些方法。 下面LZ给举一个例子,比如我们有一个接口,里面就一个方法,是 阅读全文
posted @ 2019-06-26 14:26 威兰达 阅读(322) 评论(0) 推荐(0) 编辑
摘要:1、从实现方式上分为两种,类适配器和对象适配器,这两种的区别在于实现方式上的不同,一种采用继承,一种采用组合的方式(继承和实现接口方式)。 2、从使用目的上来说,也可以分为两种,特殊适配器和缺省适配器,这两种的区别在于使用目的上的不同,一种为了复用原有的代码并适配当前的接口,一种为了提供缺省的实现, 阅读全文
posted @ 2019-06-25 18:01 威兰达 阅读(362) 评论(0) 推荐(0) 编辑
摘要:定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化; 策略模式在LZ第一次接触到的时候,LZ是这么理解的,就是如果我们想往一个方法当中插入随便一段代码的话,就是策略模式。即如下形式。 public class MyClass 阅读全文
posted @ 2019-06-25 17:28 威兰达 阅读(1438) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示