从项目中谈设计模式

时间:2020-12-24 01:10:13


(如ExamSerivce等接口),为何不干脆直接用类实现,多简单啊……种种疑惑伴随着我做整个项目的始终,终日郁郁寡欢。

   项目的大致结构图如下:(此处不作太多解释)本地版

从项目中谈设计模式

ExamServiceAgentImpl来实现ExamServiceImpl接口,于是基本不用改动其他地方就安然完成了网络版,此时的我似乎明白了为什么要定义这个ExamServiceImpl接口了,原来这是为了后面的开发做准备啊。

网络版的实现结构图(部分):

从项目中谈设计模式

 


ExamServiceImpl接口为此而定义的,这就用到的是“抽象工厂模式”。抽象工厂模式就是为创建一组相关类或相互依赖的对象提供一个接口,而且无须指定它们的具体类。若要实现本地版或网络版时只需在客户端代码中稍微改动,就立即完成了网络版和本地版的切换。啊,看来设计模式真是重要。

      对设计模式的学习提出一点个人见解吧。如果你纯粹的拿着一本设计模式的书来按步就班的学习,看完这本书后,你一定会发现你什么也没看懂,就和没看一样(曾有人这么说过)。我要说的是,在看每个模式的时候一点要结合具体的实例来理解掌握它的好处以及所用场所,比如说把一些相关的模式拿到做过的一些项目中重新来看,你会发现你对做过的项目又有了新的认识,这样学习设计模式的效果更好。