- 1、本文档共403页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
参考程序 问答时间 谢谢! 状态模式(State)--趣味见解 跟MM交往时,一定要注意她的状态哦,在不同的状态时她的行为会有不同,比如你约她今天晚上去看电影,对你没兴趣的MM就会说“有事情啦”,对你不讨厌但还没喜欢上的MM就会说“好啊,不过可以带上我同事么?”,已经喜欢上你的MM就会说“几点钟?看完电影再去泡吧怎么样?”,当然你看电影过程中表现良好的话,也可以把MM的状态从不讨厌不喜欢变成喜欢哦。 备忘录模式(Memento)--源码实现 备忘录模式(Memento)--最佳实践 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。 设计原则: (1)封装边界的保持。 (2)双重接口实现,保证安全性。 备忘录模式(Memento)--趣味见解 同时跟几个MM聊天时,一定要记清楚刚才跟MM说了些什么话,不然MM发现了会不高兴的哦,幸亏我有个备忘录,刚才与哪个MM说了什么话我都拷贝一份放到备忘录里面保存,这样可以随时察看以前的记录啦。 观察者模式(Observer)--概述 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的 对象都得到通知并被自动更新。 观察者模式(Observer)--类图 观察者模式(Observer)--适用性 1.当一个抽象模型有两个方面,其中一个方面依赖于另一方面。 将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。 2.当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变。 3.当一个对象必须通知其它对象,而它又不能假定其它对象是谁。 观察者模式(Observer)--参与者 1.Subject(目标) 目标知道它的观察者。可以有任意多个观察者观察同一个目标。 提供注册和删除观察者对象的接口。 2.Observer(观察者) 为那些在目标发生改变时需获得通知的对象定义一个更新接口。 3.ConcreteSubject(具体目标) 将有关状态存入各ConcreteObserver对象。 当它的状态发生改变时,向它的各个观察者发出通知。 4.ConcreteObserver(具体观察者) 维护一个指向ConcreteSubject对象的引用。 存储有关状态,这些状态应与目标的状态保持一致。 实现Observer的更新接口以使自身状态与目标的状态保持一致 观察者模式(Observer)--协作 观察者模式(Observer)--效果 优点?: –目标和观察者之间的抽象耦合,目标知道的仅仅是它有一系列符合Observer接口的观察者,耦合最小。? –支持广播通信,可在任何时刻增加或删除观察者。 缺点?: –意外更新,目标上的一个操作将导致一系列观察者的更新,如果定义或维护不当,常常引起错误的更新。 观察者模式(Observer)--源码实现 观察者模式(Observer)--源码实现 观察者模式(Observer)--源码实现 观察者模式(Observer)--源码实现 观察者模式(Observer)--java实现 观察者模式(Observer)--java实现 观察者模式(Observer)--最佳实践 观察者模式: 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 设计原则: (1)开关原则:可以在运行时动态增加观察者对象。 (2)单一职责原则:每一个观察者处理自身的更新行为,功能职责单一。 (3)依赖倒置原则:具体主题对象中存储的是观察者接口类型,有利于观察者对象的变化(增加或者删除),系统更加灵活、更易扩展。 观察者模式(Observer)--趣味见解 想知道咱们公司最新MM情报吗?加入公司的MM情报邮件组就行了,tom负责搜集情报,他发现的新情报不用一个一个通知我们,直接发布给邮件组,我们作为订阅者(观察者)就可以及时收到情报啦。 状态模式(State)--概述 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 状态模式(State)--实例 //红绿灯? public class Context{ ??? private int color; ??? public void setColor(int color){ ??????? this.color=color ??? } ??? public void operate(){ ??????? if (color = Col
文档评论(0)