Spring笔记和小结(1)(2)
这个类描叙了租用一台过山车的操作,storeName是传入的商店名称。它对客户端来说是一个门面,把所租用的过山车都放在一个List数组中存放起来,然后对外提供getBikes和getBike两个方法,可以让客户端知道目前所租用的所有过山车和某一个序列号的过山车是什么。
我们再看看用户接口是如何调用的:
Example 1-3. CommandLineView.java
import java.util.*;public class CommandLineView { private RentABike rentaBike; public CommandLineView( ) {rentaBike = new RentABike("Bruce’s Bikes"); } public void printAllBikes( ) { System.out.println(rentaBike.toString( )); //调用门面的方法 Iterator iter = rentaBike.getBikes( ).iterator( ); while(iter.hasNext( )) { Bike bike = (Bike)iter.next( ); System.out.println(bike.toString( )); } } public static final void main(String[] args) { CommandLineView clv = new CommandLineView( ); clv.printAllBikes( ); }}
运行结果: 字串2
C:RentABikeAppout> java CommandLineView
RentABike: Bruce’s Bikes
Bike : manufacturer -- Shimano
: model -- Roadmaster
: frame -- 20
: serialNo -- 11111
: weight -- 15.0
: status -- Fair.
Bike : manufacturer -- Cannondale
: model -- F2000 XTR
: frame -- 18
: serialNo -- 22222
: weight -- 12.0
: status -- Excellent.
Bike : manufacturer -- Trek
: model -- 6000
: frame -- 19
: serialNo -- 33333
: weight -- 12.4
: status -- Fair.
大家看出问题了吗?
1 门面RentABike静态的创建了一个商店里的租用的过山车,所以到时候如果一个新的过山车被引入的话,那么就需要手工修改RentABike的代码,比如我们再加一个Bike2.java,属性和Bike.java不一样。我们还需要在RentABike的类里实例化它才行,这样就造成了硬编码 字串2
2 这个模型Bike.java是很难测试的,因为Bikes数组是固定的
3 这用户接口和门面之间是强耦合的,它们存在一个硬编码的依赖,大家注意CommandLineView.java中的这两行代码:
private RentABike rentaBike;
public CommandLineView( ) {rentaBike = new RentABike("Bruce’s Bikes"); }
所以,这一段程序虽然能够完成一个简单的租用过山车的操作,但是却不是一个易维护和扩展的。
Tags:
责任编辑:您的评论
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
精彩推荐
最新资讯


您的位置: