摘要:行为型模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化,它是 GoF 设计模式中最为庞大的一类模式,包含以下 11 种:模板方法(Template Method)模式、策略(Strategy)模式、命令(Command)模式、职责链(Chain of Respo 阅读全文
posted @ 2021-01-15 13:27 计算机学习充电 阅读(5) 评论(0) 推荐(0) 编辑
摘要:结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构,就像搭积木, 可以通过简单积木的组合形成复杂的、功能更为强大的结构。结构型模式可以分为类结构型模式和对象结构型模式,也可分为代理模式(Proxy)、适配器模式(Adapter)、桥接模式(Bridge)、 阅读全文
posted @ 2021-01-15 13:25 计算机学习充电 阅读(5) 评论(0) 推荐(0) 编辑
摘要:创建型模式(Creational Pattern)的主要特点是将对象的创建与使用分离,根据对象的创建与组合方式的不同,创建型模式可分为单例(Singleton)模式、原型(Prototype)模式、工厂方法(Factory Method)模式、抽象工厂(Abstract Factory)模式和建造者 阅读全文
posted @ 2021-01-15 13:23 计算机学习充电 阅读(5) 评论(0) 推荐(0) 编辑
摘要:本实验是为后续实验做准备的。在《设计模式》教程中,各个程序实例都要画类图,所以读者必须掌握用某种 UML 建模工具来画类图,本教程选择 UMLet 作为 UML 的建模工具。 实验目的 本实验的主要目的如下。 理解类的基本概念,掌握如何从需求分析中抽象出类的方法。 理解类之间关系,掌握如何分析具体实 阅读全文
posted @ 2021-01-15 13:22 计算机学习充电 阅读(3) 评论(0) 推荐(0) 编辑
摘要:在软件开发中,会遇到有些问题多次重复出现,而且有一定的相似性和规律性。如果将它们归纳成一种简单的语言,那么这些问题实例将是该语言的一些句子,这样就可以用“编译原理”中的解释器模式来实现了。虽然使用解释器模式的实例不是很多,但对于满足以上特点,且对运行效率要求不是很高的应用实例,如果用解释器模式来实现 阅读全文
posted @ 2021-01-15 13:21 计算机学习充电 阅读(6) 评论(0) 推荐(0) 编辑
摘要:每个人都有犯错误的时候,都希望有种“后悔药”能弥补自己的过失,让自己重新开始,但现实是残酷的。在计算机应用中,客户同样会常常犯错误,能否提供“后悔药”给他们呢?当然是可以的,而且是有必要的。这个功能由“备忘录模式”来实现。其实很多应用软件都提供了这项功能,如 Word、记事本、Photoshop、E 阅读全文
posted @ 2021-01-15 13:18 计算机学习充电 阅读(7) 评论(0) 推荐(0) 编辑
摘要:在现实生活中,有些集合对象存在多种不同的元素,且每种元素也存在多种不同的访问者和处理方式。例如,公园中存在多个景点,也存在多个游客,不同的游客对同一个景点的评价可能不同;医院医生开的处方单中包含多种药元素,査看它的划价员和药房工作人员对它的处理方式也不同,划价员根据处方单上面的药品名和数量进行划价, 阅读全文
posted @ 2021-01-15 13:16 计算机学习充电 阅读(6) 评论(0) 推荐(0) 编辑
摘要:在现实生活以及程序设计中,经常要访问一个聚合对象中的各个元素,如“数据结构”中的链表遍历,通常的做法是将链表的创建和遍历都放在同一个类中,但这种方式不利于程序的扩展,如果要更换遍历方法就必须修改程序源代码,这违背了 “开闭原则”。既然将遍历方法封装在聚合类中不可取,那么聚合类中不提供遍历方法,将遍历 阅读全文
posted @ 2021-01-15 13:13 计算机学习充电 阅读(5) 评论(0) 推荐(0) 编辑
摘要:在现实生活中,常常会出现好多对象之间存在复杂的交互关系,这种交互关系常常是“网状结构”,它要求每个对象都必须知道它需要交互的对象。例如,每个人必须记住他(她)所有朋友的电话;而且,朋友中如果有人的电话修改了,他(她)必须让其他所有的朋友一起修改,这叫作“牵一发而动全身”,非常复杂。如果把这种“网状结 阅读全文
posted @ 2021-01-15 13:11 计算机学习充电 阅读(5) 评论(0) 推荐(0) 编辑
摘要:在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。这样的例子还有很多,例如,股票价格与股民、微信公众号与微信用户、气象 阅读全文
posted @ 2021-01-15 13:08 计算机学习充电 阅读(8) 评论(0) 推荐(0) 编辑