面向对象程序设计设计模式论文邓鹏辉.doc

面向对象程序设计设计模式论文邓鹏辉.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象程序设计设计模式论文邓鹏辉

面向对象程序设计 姓名: 班级: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具体观察者角色 具体观察者角色,通常用一个具体子类实现。 观察者模式的效果 观察者模式的效果有以下的优点: 第一、观察者模式在被观察者和观察者之间建立一个

文档评论(0)

jiqinyu2015 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档