设计模式笔试题解析(二)

程序设计:

某房地产公司欲开发一套房产信息管理系统,根据如下描述选择合适的设计模式进行设计。
要求:
(1) 该公司有多种房型,如公寓、别墅等,在将来可能会增加新的房型;
(2) 销售人员每售出一套房子,主管将收到相应的销售消息。

参考解答

对于描述(1)可以选择使用工厂方法模式,对于描述(2)可以选择使用观察者模式,本题参考类图如下所示:

image.png
    在类图中,HouseCreator是抽象房屋工厂类,其子类VilladomCreator用于创建别墅Villadom,子类ApartmentCreator用于创建公寓Apartment,Villadom和Apartment都是抽象房屋类House的子类,此时应用了工厂方法模式,如果增加新类型的房屋,只需对应增加新的房屋工厂类即可,原有代码无须做任何修改;House类同时作为抽象观察目标,子类Villadom和Apartment作为具体观察目标,相关人员类Stakeholder作为抽象观察者,其子类Manager(主管)作为具体观察者,实现了在Stakeholder中声明的response()方法,当房屋售出时,房屋的状态status将发生变化,在setStatus()方法中调用观察者的response()方法,即主管将收到相应消息,此时应用了观察者模式。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 01. 颅脑CT扫描采用的听眶线是()。 (1.0 分) A. 外耳孔与外眼眦的连线 B. 外耳孔上缘与眶下缘的连...
    我们村我最帅阅读 3,452评论 0 6
  • 1. 下列叙述错误的是()。 (2.0 分) A. 质量管理包括QA和QC一切活动的全部过程 B. 影像质量是指对...
    我们村我最帅阅读 4,022评论 0 8
  • 再见了各位。 小六子要离开这里了,这不是我想要的生活。 我不喜欢这种生活方式 ,浮躁,功利,虚华。 虚名,一切都是...
    猋子阅读 278评论 0 0
  • “你丫看邮件了吗?”还没有上QQ的高超被孔令澜的话拉回到了现实中,骤然睁开眼睛的高超,被日光灯晃的眯起眼睛,他惊诧...
    爱聊天的广告人阅读 712评论 0 51
  • 我们每个人都在为成为主角而奋斗着,不管大或小,都足以让我们为之努力奋斗。 以前我并不怎么明白,总以为自己孤身一人,...
    獨紅阅读 692评论 5 6