设计模式 选自《闻缺陷则喜》此书可免费下载

简介: 设计模式 选自《闻缺陷则喜》此书可免费下载

口诀,方便记忆而已:


抽工单建原


桥代理组合适配器,享元装饰外观


访问者写好策略备忘录,观察模板迭代的状态,命令中介解释责任链。


设计模式很多,GOF就列出23种,本文仅举三例。


工厂方法

定义一个用于创建对象的接口,让子类决定实例化哪一个类。自定义一个消息框,最初只能设置标题和内容。后来:可以选择是否有按钮,是否有图标。笨办法:4个类对应4种情况。最简单的解决方法:加两个成员变量记录相关信息。再后来:图标可以更换,且数量不定;点击某个按钮对话框不需要关闭。可行解,两次工厂方法模式一次桥接模式:消息框类增加两个虚拟函数:建立按钮组和建立图标组。具体由派生类实现。


装饰模式

动态地给一个对象添加一些额外的职责。假定某公司定义了一个类级接口:显示logo,只有一个函数级接口:显示。假定微博、博客、论坛都支持了此接口,多位开发者实现了不同方式的显示logo,比如:文本logo、图片logo、反向显示文本logo。有位开发者想加上版权,支持已有、未有的显示logo方式。定义一个类“显示版权logo”实现“显示logo”接口,构造函数有参数“基础显示logo”,显示logo时:先调用“基础显示logo”的显示,再在右下角显示版权。


访问者模式

表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提


下定义作用于这些元素的新操作。某CAD,有图像接口类,此接口有两个函数:求面积和周长。某开发者想增加一个不常用操作:求中心。CAD不可能加不常用操作。如果CAD开发者采用访问者模式,就不会有此问题。假定图形种类有限,下面的源码只有矩形和圆;假定计算方式无限,本源码只有:求面积、周长。不方便口述,上代码:


相关文章
|
11月前
|
设计模式 存储 数据库
设计模式六大原则 节选自《闻缺陷则喜》(此书可免费下载)
设计模式六大原则 节选自《闻缺陷则喜》(此书可免费下载)
|
5天前
|
设计模式 算法 安全
设计模式——模板模式
模板方法模式、钩子方法、Spring源码AbstractApplicationContext类用到的模板方法
设计模式——模板模式
|
1月前
|
设计模式
设计模式-单一职责模式
设计模式-单一职责模式
|
1月前
|
设计模式 XML 存储
【二】设计模式~~~创建型模式~~~工厂方法模式(Java)
文章详细介绍了工厂方法模式(Factory Method Pattern),这是一种创建型设计模式,用于将对象的创建过程委托给多个工厂子类中的某一个,以实现对象创建的封装和扩展性。文章通过日志记录器的实例,展示了工厂方法模式的结构、角色、时序图、代码实现、优点、缺点以及适用环境,并探讨了如何通过配置文件和Java反射机制实现工厂的动态创建。
【二】设计模式~~~创建型模式~~~工厂方法模式(Java)
|
1月前
|
设计模式 XML Java
【一】设计模式~~~创建型模式~~~简单工厂模式(Java)
文章详细介绍了简单工厂模式(Simple Factory Pattern),这是一种创建型设计模式,用于根据输入参数的不同返回不同类的实例,而客户端不需要知道具体类名。文章通过图表类的实例,展示了简单工厂模式的结构、时序图、代码实现、优缺点以及适用环境,并提供了Java代码示例和扩展应用,如通过配置文件读取参数来实现对象的创建。
【一】设计模式~~~创建型模式~~~简单工厂模式(Java)
|
1月前
|
设计模式 uml C语言
设计模式----------工厂模式之简单工厂模式(创建型)
这篇文章详细介绍了简单工厂模式,包括其定义、应用场景、UML类图、通用代码实现、运行结果、实际应用例子,以及如何通过反射机制实现对象创建,从而提高代码的扩展性和维护性。
设计模式----------工厂模式之简单工厂模式(创建型)
|
1月前
|
设计模式 uml
设计模式-------------工厂模式之工厂方法模式(创建型)
工厂方法模式是一种创建型设计模式,它通过定义一个用于创建对象的接口,让子类决定实例化哪一个类,从而实现类的实例化推迟到子类中进行,提高了系统的灵活性和可扩展性。
|
1月前
|
设计模式 测试技术 Go
[设计模式]创建型模式-简单工厂模式
[设计模式]创建型模式-简单工厂模式
|
2月前
|
设计模式 算法 Java
跟着GPT学设计模式之模板模式
模板模式是一种行为型设计模式,它定义了一个操作中的算法骨架,将一些步骤的具体实现延迟到子类中。该模式使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
44 6
|
1月前
|
设计模式 人工智能 达摩院
设计模式的基础问题之模板模式在软件开发中的优势是什么
设计模式的基础问题之模板模式在软件开发中的优势是什么

相关实验场景

更多