Twenty-five years without you

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

随笔分类 -  一天一个设计模式

设计模式学习
摘要:一、模式说明 能够使容器与内容物具有一致性,创造出递归结构的模式就是Composite组合模式。 举个例子:计算机中的文件系统中有文件和文件夹的概念,我们知道,文件夹可以包含文件,也可以包含子文件夹,子文件夹中又可以包含文件和文件夹。如果将文件和文件夹都看作“目录条目(Directory Entry 阅读全文
posted @ 2019-07-01 22:48 Rumble Zheng 阅读(262) 评论(0) 推荐(0)

摘要:一、模式说明 策略模式比较好理解,就是将程序中用到的算法整体的拿出来,并有多个不同版本的算法实现,在程序运行阶段,动态的决定使用哪个算法来解决问题。 举个实际的例子:排序算法的问题,假如我们的程序中需要对数据进行排序,我们知道,不同的算法具有不同的时间复杂度和空间复杂度,因此需要在程序运行时,根据可 阅读全文
posted @ 2019-06-30 14:26 Rumble Zheng 阅读(317) 评论(0) 推荐(0)

摘要:一、概念准备 在理解桥接模式之前,先要理解面向对象程序设计中的两个概念: 类的功能层次结构:假设现在有一个类Something,这个类有一些成员属性和成员方法,但是现有的功能不能满足要求,因此我们想扩展这个类,给这个类创建一个子类SomethingBetter来继承它,并在子类中添加更多属性和方法。 阅读全文
posted @ 2019-06-29 12:57 Rumble Zheng 阅读(182) 评论(0) 推荐(0)

摘要:一、模式说明 前面学习了工厂方法(Factory Method)模式。在工厂方法模式中,在工厂方法模式中,父类决定如何生成实例,但并不决定所要生成的具体类,具体的处理交由子类来处理。这里学习的抽象工厂方法模式中,抽象工厂使用抽象的零件组装成抽象的产品。即使用包含特定的方法接口零件,将零件组装成抽象产 阅读全文
posted @ 2019-06-29 00:18 Rumble Zheng 阅读(189) 评论(0) 推荐(0)

摘要:一、模式说明 在现实世界中,当我们要构造一个大型工程时(建一个大楼),通常的做法是先建造工程的每个独立部分,然后再逐步构造完成(先打地基,再搭框架,最后逐层累造)。在程序设计领域,构造一个复杂的类时(或一些具有类似结构的复杂类时),也可以采用类似的思想:如果要创建一个用于构造文档的类(或者是word 阅读全文
posted @ 2019-06-27 23:45 Rumble Zheng 阅读(258) 评论(0) 推荐(0)

摘要:一、模式说明 看了比较多的资料,对原型模式写的比较复杂,个人的理解就是模型复制,根据现有的类来直接创建新的类,而不是调用类的构造函数。 那为什么不直接调用new方法来创建类的实例呢,主要一个原因是如果类的构造函数比较复杂,又需要大量的类实例对象,且这些类比较类似的时候,就可以使用原型模式,调用对象的 阅读全文
posted @ 2019-06-27 00:15 Rumble Zheng 阅读(262) 评论(0) 推荐(0)

摘要:一、模式说明 有时候,我们希望在应用程序中,仅生成某个类的一个实例,这时候需要用到单例模式。 二、模式类图 三、模式中的角色 Singleton角色,该模式中仅有的一个角色,该角色有一个返回唯一实例的getInstance方法,该方法总是返回同一个实例; 四、代码示例 单例模式比较简单,要实现单例模 阅读全文
posted @ 2019-06-25 23:13 Rumble Zheng 阅读(498) 评论(0) 推荐(0)

摘要:一、模式说明 在前一个模板方法(Template Method)模式中,父类定义了处理流程,而流程中用到的方法交给子类去实现。类似的,在工厂方法模式中,父类决定如何生成实例,但并不决定所要生成的具体类,具体的处理交由子类来处理。这样可以将生成实例的框架和实例本身解耦。 工厂方法模式在很多框架中都有用 阅读全文
posted @ 2019-06-24 22:27 Rumble Zheng 阅读(314) 评论(0) 推荐(0)

摘要:一、模式说明 现实世界中的模板是用于将事物的结构规律予以固定化、标准化的成果,它体现了结构形式的标准化。例如镂空文字印刷的模板,通过某个模板印刷出来的文字字体大小都是一模一样,但是具体使用什么材质的颜料,什么颜色的颜料来印刷文字,取决于具体实际业务场景的需要。由此可见,模板制定了某些固定的条条框框, 阅读全文
posted @ 2019-06-23 15:17 Rumble Zheng 阅读(319) 评论(0) 推荐(0)

摘要:一、模式说明 在现实生活中,当需要将两种设备连接起来,但是两个设备的接口规范又不一致(比如电脑上只有Type-C接口,但是你的显示器是HDMI接口),这时候就需要一个适配器,适配器一端连接电脑,一端连接屏幕。有了这个适配器,我们不需要重新买HDMI接口电脑的电脑,就可以达到我们连接外置显示器的目的。 阅读全文
posted @ 2019-06-22 16:49 Rumble Zheng 阅读(1966) 评论(0) 推荐(0)

摘要:一、模式说明 迭代操作在程序开发中很常见:在数据集合中按顺序便利所有元素(例如:遍历一个数组中的所有元素),将遍历时使用的索引(如访问数组循环变量i)抽象化、通用化后形成的模式就是迭代器模式。 核心的迭代器一般包含两个方法:hasNext()和next()方法,前一个方法用于判断集合中是否还存在下一 阅读全文
posted @ 2019-06-22 15:27 Rumble Zheng 阅读(236) 评论(0) 推荐(0)