软件构造实验一:使用工厂方法模式设计“某系统日志记录器系统”。
- 首先需要知道什么叫工厂方法模式,它是24个设计模式中的其中一个设计模式。工厂方法模式简称为工厂模式( Factory Pattern),它的定义是看下边引用(摘抄于知乎):
工厂方法模式,简单来说是来为了解决简单工厂模式所出现的一些缺点而进行的改进。比如当一个简单的工厂模式要生产一个飞机。能够生产直升机,战斗机,波音747.但是如果要新增一个水上飞机。那么就要修改源代码,也就是修改工厂的源代码!添加一个业务逻辑,显然不符合开闭原则,所以就有了工厂方法模式。提供一个抽象工厂方法模式,这样就可以避免新增的时候修改源代码,只要新建一个类来继承了工厂方法模式即可。
工厂方法模式:定义一个用于创建对象的接口,但是让子类来决定到底创建哪一个实例。工厂方法模式让一个类的实例化延迟到其子类。
-
工厂方法模式的UML图
*Product:它是定义产品的接口,是工厂方法模式所创建的产品的父类。
*ConcreteProduct:具体产品
*Factory:抽象工厂类中声明了工厂方法。
*ConcreteFactory:具体的工厂方法,继承了抽象工厂类,用来生产具体的对象。 -
好,接下来就可以看下实验内容以及实验目的了:
(1)实验内容:某系统日志记录器要求支持多种日志记录方式,如文件记录,数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。
(2)实验目的:通过使用工厂方法模式,设计一个系统日志记录器,要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式。 -
这个实验一定会要求同学们画出相关UML类图,所以可以通过最简单的WPS也可以画出UML类图哦:大致流程如下:
打开WPS–>新建–>点击“流程图”并新建空白文档–>可以选择相应图形来画–>导出
-
下边就是代码部分了:
①Log产品类,充当抽象产品角色:
package practice01;