摘要: 外观模式(Facade模式)详解 在现实生活中,常常存在办事较复杂的例子,如办房产证或注册一家公司,有时要同多个部门联系,这时要是有一个综合部门能解决一切手续问题就好了。 软件设计也是这样,当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端 阅读全文
posted @ 2020-10-12 09:35 夜雨流云 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 装饰模式(装饰设计模式)详解 在现实生活中,常常需要对现有产品增加新的功能或美化其外观,如房子装修、相片加相框等。 在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。 所有这些都可以釆用装饰模式来实现。 装饰模式的定义与特点 阅读全文
posted @ 2020-10-12 09:09 夜雨流云 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 桥接模式(Bridge模式)详解 在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很多,而且扩展困难。 当然, 阅读全文
posted @ 2020-09-30 08:51 夜雨流云 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 适配器模式(Adapter模式)详解 在现实生活中,经常出现两个对象因接口不兼容而不能在一起工作的实例,这时需要第三者进行适配。 例如,讲中文的人同讲英文的人对话时需要一个翻译,用直流电的笔记本电脑接交流电源时需要一个电源适配器,用计算机访问照相机的 SD 内存卡时需要一个读卡器等。 在软件设计中也 阅读全文
posted @ 2020-09-30 08:47 夜雨流云 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 代理模式(代理设计模式)详解 在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。 例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。 在软件设计中,使用 阅读全文
posted @ 2020-09-29 11:36 夜雨流云 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 建造者模式(Bulider模式)详解 在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。 例如,计算机是由 OPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组装而成的,采购员不可能自己去组装计算机,而是将计算机的配置要求告诉计算机销售公司,计 阅读全文
posted @ 2020-09-29 11:16 夜雨流云 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂模式(详解版) 工厂方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机、计算机软件学院只培养计算机软件专业的学生等。 同种类称为同等级,也就是说:工厂方法模式只考虑生产同等级的产品,但是在现实生活中许多工厂是综合型的工厂,能生产多等级(种类) 的产品,如农场里既养动物又 阅读全文
posted @ 2020-09-27 09:11 夜雨流云 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式(详解版) 在现实生活中社会分工越来越细,越来越专业化。各种产品有专门的工厂生产,彻底告别了自给自足的小农经济时代,这大大缩短了产品的生产周期,提高了生产效率。同样,在软件开发中能否做到软件对象的生产和使用相分离呢?客户随意增删或改变对软件相关对象的使用呢? 模式的定义与特点 工厂方法( 阅读全文
posted @ 2020-09-27 08:56 夜雨流云 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 原型模式(原型设计模式)详解 在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单。 原型模式的定义与特点 原型(Prototype)模式的定义如下:用一个已经创建的实例 阅读全文
posted @ 2020-09-22 10:43 夜雨流云 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 单例模式(单例设计模式)详解 在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。 单例模式的定义与特点 单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。 例如,Windows 中只能打开一个任务管 阅读全文
posted @ 2020-09-22 10:39 夜雨流云 阅读(141) 评论(0) 推荐(0) 编辑