sealw:
[晒代码] 我说:“要有路!”于是就有了一些路
[阅读: 391] 2008-04-18 02:45:05
设计考虑:
1.业务类宜设计成类,不宜设计成接口,这样我们可以往里面放静态方法,提供对该类所有实例的操作。Peter Coad说,我们之所以不把所有的东西设计成接口,是因为那么做不经济。
2.将静态方法或动态方法的实现代理给另外的Service,这样业务类以及支持它的Service形成了一个组件,业务类成为这个组件的Facade。
3.业务类对支持它的Service采取即用即取的原则,也就是不用内部字段来保持对Service的引用。Service可以看成是一些更小的组件。这样可以利用OSGi这样的动态组件架构,在不停止应用程序运行的情况下,更换服务。
public class Road {
public static final int NO_VELOCITY_BECAUSE_INVALID_SEQUENCE = -1;
public static final double KILOGRAM_PER_HOUR_FACTOR = 3.6;
public static final int REASONABLE_HIGHEST_SPEED = 50;
public static Set<Integer> listCells() {
return Factory.getInstance().getInstance(RoadService.class).listCells();
}
public static Set<Integer> listLacs() {
return Factory.getInstance().getInstance(RoadService.class).listLacs();
}
public static List<Road> listRoads() {
return Factory.getInstance().getInstance(RoadService.class).listRoads();
}
private String name;
private List<Integer> cells = new ArrayList<Integer>();
private List<Integer> lacs = new ArrayList<Integer>();
private List<Integer> distances = new ArrayList<Integer>();
private int referrenceMinutes;
//实例方法略
}