一、使用 factory method 模式
使用此设计模式是为了使其创建对象时更方便一些。
1.使用 factory method 模式构造CentralObject对象
使用 factory method 设计模式,先创建一个抽象类 CentralObjectFactory,其中有一个抽象方法public abstract CentralObject createCentralObject(String name, String[] args), 所有子类继承于CentralObjectFactory并实现这个方法。
2.使用 factory method 模式构造PhysicalObject对象
使用 factory method 设计模式,先创建一个抽象类 PhysicalObjectFactory,其中有一个抽象方法public abstract PhysicalObject createPhysicalObject(String name, String[] args), 所有子类继承于PhysicalObjectFactory并实现这个方法。
3.使用 factory method 模式构造Track对象
使用 factory method 设计模式,先创建一个抽象类TrackFactory,其中有一个方法public Track createTrack(int number, int radius),构造出Track。
调用工厂模式创造对应的实例。
二、使用abstract factory模式
使用abstract factory模式构造ConcreteCircularOrbit对象,创建轨道系统。
创建一个接口CircularOrbitFactory,其中有一个方法public CircularOrbit<CentralObject, PhysicalObject> createCircularOrbit(String filePath)。从中派生出三个子类构造三个对应的轨道系统,每个类都实现这个方法。
三、使用Iterator模式
在设计该模式时,并没有设计单独的类来实现它,而是在具体的应用中实现它,比如在搜索轨道物体时,会用到该模式。
四、使用facade设计模式
在设计API时,运用facade模式,将所有API放置在helper类CircularOrbitAPIs当中。
五、使用strategy 设计模式
设计接口strategy类,里面只有一个方法public <L, E> List<CircularOrbit<L, E>> TrackGamestrategy(CircularOrbit<L, E> c)。
再设计random和arrange两个类,实现strategy类,分别实现其方法,完成随机编排和按成绩编排。在运用时,创建Strategy的不同实例,来调用不同的策略。
六、使用memento设计模式
实现Memento设计模式管理电子跃迁的状态。
设计Memento类来保存现在的电子的状态,域有电子,源轨道,目的轨道。
设计CareTaker类来保存电子跃迁的历史动作,当恢复时,将电子反向跃迁回源轨道并删除最后的历史动作。
在使用时,创建这两个实例来配合调用以达到相应功能。