摘要: 问题的引入: 假如我们需要为游戏开发一种坦克,除了各种不同型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能:比如红外线夜视功能,水陆双栖功能,卫星定位功能等等。 通过子类继承发现代码冗余太严重 动机(Motivation) 上述描述的问题根源在于我们“过度的使用了继承来扩展对象的功能” 阅读全文
posted @ 2016-11-07 17:15 朴树的扑 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 对象容器的问题: 在面向对象系统中,我们常会遇到一类具有“容器”特征的对象--即它们在充当对象的同时,又是其他对象的容器。 动机(Motivation) 上述描述的问题根源在于:客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了 阅读全文
posted @ 2016-11-07 12:51 朴树的扑 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 引入问题: 假如我们需要开发一个同事支持PC和手机的坦克游戏,游戏在PC和手机上功能都一样,都有同样的类型,面临同样的功能需求变化,比如坦克可能有多种不同的型号:T50,T75,T90... 但是PC和手机上的图形绘制、声效、操作等实现完全不同...因此对于各种型号的坦克,都要提供不同平台上的坦克实 阅读全文
posted @ 2016-11-07 10:23 朴树的扑 阅读(479) 评论(0) 推荐(0) 编辑