摘要: 姓名:陈阳学号:07770114一、模式信息模式名称:桥接模式生活场景:考虑一个售楼小区不同的建筑面积、不同楼层的每平米造价成本是不同的。同一建筑面积的屋子,有楼层的高低之分。而同一楼层也会有建筑面积不一样的屋子终极目标:实现适应于扩充到对各种建筑面积的屋子和各种楼层进行建模的情形。1.不假思索的思路:通过类继承的方式来做上面的例子。即:先建立楼层类;然后派生出高楼层类、矮楼层类;然后再高楼层类和矮楼层类上分别派生出:大面积房屋类和小面积房屋类。类结构图:代码浏览:代码存在问题:1.它在遵循开放-封闭原则的同时,违背了类的单一职责原则,即一个类只有一个引起它变化的原因,而这里引起变化的原因却有 阅读全文
posted @ 2010-12-15 17:12 天津城建学院软件工程 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 一、完成者信息:姓名: 王延学号:07770125二、模式信息模式名称:迭代器生活场景:将保险柜里的钱分类,从中选出假币。终极目标:合计最终真币的总数。 1.不假思索的思路:通过类和类之间参数的调用来实现最后结果。类结构图:代码浏览:代码:存在问题:1.计算过程过于复杂。2.类Real的实用性很差,可以直接去掉。3.继承和调用的次数过多,容易混乱。4.new的对象名过多,容易混搅。2.归纳阶段归纳步骤一、二、四当前目标:实现假币的计算和最后的总和思路:类结构图:代码浏览:代码:设计体会:节省了很多不必要的步骤,是过程简明了很多。减少了出错的可能性,是程序的耦合程度大大减少。 验证结论:用户使用 阅读全文
posted @ 2010-12-15 16:46 天津城建学院软件工程 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 一、完成者信息:姓名:王智超学号:07770120二、模式信息模式名称:享元模式生活场景:考虑生产汽车的场景:一个品牌有各种型号的汽车,每种型号的汽车有相同的参数(如型号,长,宽,高),也有不同的参数(如颜色,马力) ,就可以把相同的参数拿出来共享。终极目标:实现适应于扩充到对各种汽车和各种型号进行建模的情形。1.不假思索的思路:通过给属性赋值的方法来做:没一辆车都有自己的所有的参数的属性。 类结构图:  代码浏览:代码实现:客户端调用:  存在问题:  1.重复代码会很多,相同的型号汽车有一部分参数是相同的;  2.类的结构过于复杂,难于维护;  3.最致命的一点是效率太差。生产大量汽车会创 阅读全文
posted @ 2010-12-15 16:18 天津城建学院软件工程 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 一、完成者信息:姓名:张璐璐学号:07770232二、模式信息模式名称:装饰模式生活场景:加工蛋糕的场景:现有烤好的蛋糕,接下来我们要给蛋糕切好形状,然后涂上奶油或巧克力,再放上草莓,最后插上蜡烛。1.不假思索的思路: 按类继承的作法如下:类图:代码存在问题:由此可见,如果用类继承实现,子类会爆炸式地增长。动机(Motivate):上述描述的问题根源在于我们“过度地使用了继承来扩展对象的功能”,由于继承为类型引入的静态物质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能组合)会导致更多子类的膨胀(多继承)。2.归纳阶段如何使“对象功能的扩展”能够根据 阅读全文
posted @ 2010-12-15 15:45 天津城建学院软件工程 阅读(557) 评论(1) 推荐(1) 编辑