java设计模式(一)——工厂方法模式
工厂方法模式
工厂方法模式定义
定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类
工厂方法模式包括:
(1)抽象产品类:所创建产品的父类,给出一个抽象接口或抽象类,以及一般由具体产品类具体实现。
(2)具体产品类:抽象产品类的实现类,为实现某个具体产品的对象。
(3)抽象工厂类:工厂方法模式的核心(简单工厂模式无此抽象类),与应用程序无关。是具体工厂必须实现的接口或者必须继承的父类。
(4)具体工厂类:继承抽象工厂类,实现具体业务逻辑
工厂方法模式优缺点:
优点:(1)工厂模式完全负责设计原则,降低了对象之间的耦合度。
(2)工厂方法模式依赖于抽象的架构,将实例化的任务交由子类去完成,有非常好的拓展性。
缺点:每次为工厂方法模式添加新的产品都需要编写一个新的产品类,并引入抽象层。
工厂方法模式实例
一、内容
某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。
二、设计类图
三、全部代码
(1)抽象产品类Log(日志记录类)
public interface Log {
public void write();
}
抽象产品类Log,可以是一个接口,也可以是一个抽象类,其中包含了所有产品都具有的业务方法write()。
(2)具体产品类FileLog(文件记录类)
public class FileLog implements<