正文内容加载中...
posted @ 2010-12-16 15:15 天津城建学院软件工程 阅读(174) 评论(0) 编辑
摘要: 姓名:陈阳学号:07770114一、模式信息模式名称:桥接模式生活场景:考虑一个售楼小区不同的建筑面积、不同楼层的每平米造价成本是不同的。同一建筑面积的屋子,有楼层的高低之分。而同一楼层也会有建筑面积不一样的屋子终极目标:实现适应于扩充到对各种建筑面积的屋子和各种楼层进行建模的情形。1.不假思索的思路:通过类继承的方式来做上面的例子。即:先建立楼层类;然后派生出高楼层类、矮楼层类;然后再高楼层类和矮楼层类上分别派生出:大面积房屋类和小面积房屋类。类结构图:代码浏览:代码存在问题:1.它在遵循开放-封闭原则的同时,违背了类的单一职责原则,即一个类只有一个引起它变化的原因,而这里引起变化的原因却有阅读全文
posted @ 2010-12-15 17:12 天津城建学院软件工程 阅读(215) 评论(0) 编辑
摘要: 一、完成者信息:姓名: 王延学号:07770125二、模式信息模式名称:迭代器生活场景:将保险柜里的钱分类,从中选出假币。终极目标:合计最终真币的总数。 1.不假思索的思路:通过类和类之间参数的调用来实现最后结果。类结构图:代码浏览:代码:存在问题:1.计算过程过于复杂。2.类Real的实用性很差,可以直接去掉。3.继承和调用的次数过多,容易混乱。4.new的对象名过多,容易混搅。2.归纳阶段归纳步骤一、二、四当前目标:实现假币的计算和最后的总和思路:类结构图:代码浏览:代码:设计体会:节省了很多不必要的步骤,是过程简明了很多。减少了出错的可能性,是程序的耦合程度大大减少。 验证结论:用户使用阅读全文
posted @ 2010-12-15 16:46 天津城建学院软件工程 阅读(183) 评论(0) 编辑
摘要: 一、完成者信息:姓名:王智超学号:07770120二、模式信息模式名称:享元模式生活场景:考虑生产汽车的场景:一个品牌有各种型号的汽车,每种型号的汽车有相同的参数(如型号,长,宽,高),也有不同的参数(如颜色,马力) ,就可以把相同的参数拿出来共享。终极目标:实现适应于扩充到对各种汽车和各种型号进行建模的情形。1.不假思索的思路:通过给属性赋值的方法来做:没一辆车都有自己的所有的参数的属性。 类结构图:  代码浏览:代码实现:客户端调用:  存在问题:  1.重复代码会很多,相同的型号汽车有一部分参数是相同的;  2.类的结构过于复杂,难于维护;  3.最致命的一点是效率太差。生产大量汽车会创阅读全文
posted @ 2010-12-15 16:18 天津城建学院软件工程 阅读(368) 评论(0) 编辑
摘要: 一、完成者信息:姓名:张璐璐学号:07770232二、模式信息模式名称:装饰模式生活场景:加工蛋糕的场景:现有烤好的蛋糕,接下来我们要给蛋糕切好形状,然后涂上奶油或巧克力,再放上草莓,最后插上蜡烛。1.不假思索的思路: 按类继承的作法如下:类图:代码存在问题:由此可见,如果用类继承实现,子类会爆炸式地增长。动机(Motivate):上述描述的问题根源在于我们“过度地使用了继承来扩展对象的功能”,由于继承为类型引入的静态物质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能组合)会导致更多子类的膨胀(多继承)。2.归纳阶段如何使“对象功能的扩展”能够根据阅读全文
posted @ 2010-12-15 15:45 天津城建学院软件工程 阅读(361) 评论(1) 编辑
摘要: 一、完成者信息姓名:陈绯学号:07770230二、模式信息模式名称:模板方法模式1.问题描述生活场景:大家都经常会用到对数据库中表进行操作,有时候数据库中有若干个表,我们往往是一个一个的对相应的表进行连接数据库,然后对指定的表进行增、删、改、查的一系列操作,组后关闭数据库的连接。但是当我们要对大型的数据库进行这些操作的时候,你会发现这些操作很繁琐,要对每一个表都进行相同的处理,加大的数据的操作工作。设计目的:实现对若干个不相同的表进行重复的增删改查工作。2.不假思索的思路思路描述:对TemplateMethod数据库中的Categories表进行数据库的连接,表的增删改查以及数据库的关闭等操作阅读全文
posted @ 2010-12-09 16:52 天津城建学院软件工程 阅读(923) 评论(1) 编辑
摘要: 一、完成者信息:姓名:王璐学号:07770231二、模式信息模式名称:访问者模式生活场景:假如以前食堂的食品和饮料一直都是一个价位,没有变动。这学期开学,由于工商局调节价位,导致普遍商品都涨价了,所以学校食堂里,菜价和饮料都涨价了。终极目标:实现能够对所有的情况进行访问,通知发生变化。不使用访问者模式不假思索的思路:我们去吃饭,首先看菜单,来选择食物,用现在的菜单跟以前的菜单相对比,价位之间的变化。类结构图:代码实现:代码运行结果:存在问题:在软件构建过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基类中做这样的改变,将会给子类带来很繁重的变更负担,甚至破坏原有阅读全文
posted @ 2010-12-09 13:07 天津城建学院软件工程 阅读(461) 评论(0) 编辑
摘要: 姓名:高振松学号:077701161、生活场景:看过美国科幻片的同学应该都会为美国人那惊人的想象力说折服吧。在美国的科幻片里有一种东西会经常在镜头里出现,那就是会飞行的交通工具(汽车,卡车之类的)。这些交通工具既可以在陆地上跑,也可以在天空中飞行或者在水中行驶。现假设,现在有一家汽车生产商,最近突破一项关键技术,使得所有类型的车辆都可以在天空中飞或者在水中行驶的功能。而你正好在给该生产商开发系统软...阅读全文
posted @ 2010-12-01 21:49 天津城建学院软件工程 阅读(469) 评论(0) 编辑
摘要: 姓名:宁前程学号:07770118模式名称:代理模式1.问题描述生活场景:很多人想购买李宁牌衣服,然后纷纷跑到李宁公司总部去购买,不但买不到自己想要的衣服,还白白的跑了一趟。设计目的:让用户不必非要跑到李宁公司总部去购买。2.不假思索的思路思路描述:很多人想购买李宁牌衣服,然后纷纷跑到李宁公司总部去购买。类结构图:缺点:这样的设计,为公司造成很多麻烦,也为自己造成很多麻烦。代码:首先定义一个能产生...阅读全文
posted @ 2010-12-01 21:28 天津城建学院软件工程 阅读(214) 评论(0) 编辑
摘要: 责任链模式是使用多个对象处理用户请求的成熟模式,责任链模式的关键是将用户的请求分派给许多对象,这些对象被组织成一个责任链,即每个对象含有后继对象的引用,并要求责任链上的每个对象,如果能处理用户的请求,就做出处理,不再将用户的请求传递给责任链上的下一个对象,如果不能处理用户的请求,就必须将用户的请求传递给责任链上的下一个对象。 阅读全文
posted @ 2010-11-30 23:59 天津城建学院软件工程 阅读(443) 评论(0) 编辑