学习程序的最好方式就是编代码实现它,这里我们假设一个场景为要开一个晚会,晚会的流程为:1.晚会开始;2.唱歌;3.舞蹈;4.小品;5结束。
一、传统方法
1、新建Java项目:party
2、在party项目中新建类EveningParty
在EveningParty类中实现晚会的流程,新建process函数,在process函数中实现整个晚会流程,具体代码为:
这里出现了三个类sIngable、Dancleable、和Essayable,为新建的接口,为了程序扩展方面,需要建立三个接口 sIngable、Dancleable、和Essayable,分别用于实现唱歌跳舞和小品,具体的代码为:
3.分别定义歌手、舞者和小品表演者分别实现上述接口
3.1定义Liudehua类实现Singable接口
3.2定义Naying实现Sinable接口
3.3定义Xiaohudui实现Dancleable接口
3.4定义Chenailian实现Dancleable接口
3.5定义Zhaobenshan实现Essayable接口
3.6定义Liuqian实现Essayable接口 4.修改主函数中代码
OK,程序可以正常运行。
但是程序这么写的话会出现一个问题:每次更好演员的时候需要修改晚会类的代码,这就给程序的扩展和维护带来了不便。那应该怎么做呢?可不可以吧这些麻烦的修改部分外包给一个代理去做,由代理类完成演员的修改,这就是我们下面要介绍的一种方法:用Factory类做代理负责代码的修改。
二/利用factory类,把需要变化的部分放到factory类中
1.在上面程序的基础上新建Factory类,
2.修改晚会类代码
OK,也是可以运行的
用这种方法不用修改晚会类,但是还是要修改代码,还有一种方法就是将演员的实例类写入配置文件
三、映射方法
1.在上面代码的基础上,在src目录下新建party.properties类,将演员的实例类写入配置文件,代码为:
2.修改Factory类中调用演员类的代码:
3.不用修改晚会类代码,执行程序,OK正确。