- 13
- 0
- 约7.67千字
- 约 16页
- 2018-05-25 发布于贵州
- 举报
面向对象程序设计设计模式论文邓鹏辉
面向对象程序设计
姓名: 班级:4班 学号:M座机电话号码9
图1-1 项目包
图1-2 Client包文件
图1-3 waiter包文件
图1-4 kitchen包文件
图1-5 myrestaurant包文件策略模式(Strategy Pattern)中体现了两个非常基本的面向对象设计的基本原则:封装变化的概念;编程中使用接口,而不是对接口实现。
图2-1 策略模式类图
图2-2 Client包文件package client;
public interface SweetOrder public String sweet ; 提供一个抽象方法。
b 类SweetOk
package client;
public class SweetOk implements SweetOrder public String sweet System.out.println I want the Sweet ; return I want the Sweet; c 类SweetNo:
package client;
public class SweetNo implements SweetOrder public String sweet System.out.println I do not want the Sweet ; return I do not want the Sweet; 而客人类client则面向接口编程,并使整个客人类中的属性可以利用接口和其方法实现自选和变更。
public abstract class Clients CookingOrder cookingOrder;
SweetOrder sweetOrder;
DrinkOrder drinkOrder;//面向接口编程
public Clients public void setCookingOrder CookingOrder cook cookingOrder cook; //动态设置点餐要求在设计一组依赖的对象与它们所依赖的对象之间一致(同步)的交流模型时,观察者模式(Observer Pattern)很有用。它可以使依赖对象的状态与它们所依赖的对象的状态保持同步。这组依赖的对象指的是观察者(Observer),它们所依赖的对象 称为主题(Subject)。为了实现观察者(Observer)的状态与主题(Subject)保持同步,观察者模式(Observer Pattern)由于给定主体的观察者链表需要动态的变化,因此一个主题不能维护一个静态的观察者链表。因此关注于主题状态的任何对象都需要明确地注册自己为主体的一个观 察者。主题状态发生的变化,都需要通知所有的以注册的观察者。从主题接到通知以后,每一个观察者查询主题,使自己的状态与主题的同步。因此一个主题扮演着 发布者的角色,发布信息到所有的以订阅的观察者。
换句话说,主题和它的观察者之间包含了一对多的关系。当主题的实例的状态发生变 化时,所有的依赖于它的观察者都会得到通知并更新自己。每一个观察者对象需要向主题注册,当主题的状态发生变化的时候得到通知。一个观察者可以注册或者订 阅多个主题。当观察者不希望再得到通知时,它可以向主题进行注销。
本模式的类图结构如下:
图2-3 观察者模式的静态结构 在观察者模式里有如下的角色:
抽象主题(Subject)角色:主题角色把所有的观察者对象的引用保存在一个列表里;每个主题都可以有任何数量的观察者。主题提供一个接口可以加上或撤销观察者对象;主题角色又叫做抽象被观察者 Observable 角色;
2-4 抽象主题角色抽象主题角色,有时又叫做抽象被观察者角色,可以用一个抽象类或者一个接口实现;在具体的情况下也不排除使用具体类实现。 抽象观察者(Observer)角色:为所有的具体观察者定义一个接口,在得到通知时更新自己;
2-5 抽象观察角色抽象观察者角色,可以用一个抽象类或者一个接口实现;在具体的情况下也不排除使用具体类实现。 具体主题(ConcreteSubject)角色:保存对具体观察者对象有用的内部状态;在这种内部状态改变时给其观察者发出一个通知;具体主题角色又叫作具体被观察者角色;
图2-6 主题角色具体主题角色,通常用一个具体子类实现。 具体观察者(ConcreteObserver)角色:保存一个指向具体主题对象的引用;和一个与主题的状态相符的状态。具体观察者角色实现抽象观察者角色所要求的更新自己的接口,以便使本身的状态与主题的状态自恰。
2-7具体观察者角色
具体观察者角色,通常用一个具体子类实现。 观察者模式的效果
观察者模式的效果有以下的优点:
第一、观察者模式在被观察者和观察者之间建立一个
您可能关注的文档
- 附合导线平差程序设计报告.doc
- 附属医院肿瘤综合楼项目部钢柱工程招标文件.doc
- 陆丰市甲东镇卫生院HIS收费系统采购项目询价文件及系统方案招标书.doc
- 陆埠姚江堤防加固I期工程竣工验收工程建设监理工作报告.doc
- 陆家嘴花园4#±0以下施工组织设计.doc
- 陆川猪腊制品加工工艺.doc
- 06SIMATICS7系统特性及硬件构成.ppt
- 陆浑水电站自动化设备施工组织设计方案.doc
- 陆河县实验小学教学设备项目询价文件小学科学教学仪器目录;.doc
- 陆港园区配套道路施工组织设计.doc
- 2026《面向多样性的隐私保护推荐方法概述》7800字.docx
- 2026《基于PLC的智能立体停车场的控制系统设计》7200字.docx
- 2026《太赫兹技术概述》4200字.docx
- 2026《分布式电力系统经济调度研究现状国内外文献综述》2800字.docx
- 2026《曲美家具集团股份有限公司成本管理存在的问题及对策》5600字.docx
- 2026《基于肌肉信号的人体运动研究国内外文献综述》3400字.doc
- 2026《基于城市林学植物配置问题研究》7200字.docx
- 2026《社区重点人群管理平台设计与实现》7900字.docx
- 2026《区县医院内网的设计与实施研究》6900字.doc
- 2026《静电除尘的原理及高频电源的优势综述》3100字.doc
最近下载
- 湖北省2026届高三元月调考第二次联考政治试卷(含答案及解析).pdf
- FANUC发那科 3.21机器人基础功能-机器人简易零点标定.pdf VIP
- CSD-1321智能通信控制单元说明书V1.16.pdf VIP
- 新解读《GB_T 43318 - 2023燃气轮机联合循环电站 热力性能试验》最新解读.pptx VIP
- 西卡结构胶11FC-MSDS-报告中文版.pdf VIP
- 2024年考研英语词汇(正序).pdf VIP
- RSoft仿真软件指导书.pdf VIP
- 山东省汽车维修工时定额(T-SDAMTIA 0001—2023).pdf VIP
- 2025医疗器械经营质量管理制度、工作程序及全套记录表单(直接用)(可编辑!).docx VIP
- 胃食管反流病中西医结合诊疗专家共识2025解读PPT课件.pptx VIP
原创力文档

文档评论(0)