2021-03-04

这篇博客介绍了工厂方法模式,详细阐述了其定义、组成部分及优缺点。通过一个日志记录系统的案例,展示了如何使用工厂方法模式设计文件记录和数据库记录两种日志方式。博客还提供了完整的代码实现,包括抽象产品类Log、具体产品类FileLog和DatabaseLog,以及抽象工厂类LogFactory和具体工厂类FileLogFactory、DatabaseLogFactory。最后展示了不同工厂类生成的日志记录结果。
摘要由CSDN通过智能技术生成

java设计模式(一)——工厂方法模式

工厂方法模式

工厂方法模式定义
定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类
工厂方法模式包括:
(1)抽象产品类:所创建产品的父类,给出一个抽象接口或抽象类,以及一般由具体产品类具体实现。
(2)具体产品类:抽象产品类的实现类,为实现某个具体产品的对象。
(3)抽象工厂类:工厂方法模式的核心(简单工厂模式无此抽象类),与应用程序无关。是具体工厂必须实现的接口或者必须继承的父类。
(4)具体工厂类:继承抽象工厂类,实现具体业务逻辑
工厂方法模式优缺点:
优点:(1)工厂模式完全负责设计原则,降低了对象之间的耦合度。
(2)工厂方法模式依赖于抽象的架构,将实例化的任务交由子类去完成,有非常好的拓展性。
缺点:每次为工厂方法模式添加新的产品都需要编写一个新的产品类,并引入抽象层。

工厂方法模式实例

一、内容

某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。

二、设计类图

在这里插入图片描述

三、全部代码

(1)抽象产品类Log(日志记录类)
public interface Log {
   
	public void write();
}

抽象产品类Log,可以是一个接口,也可以是一个抽象类,其中包含了所有产品都具有的业务方法write()。

(2)具体产品类FileLog(文件记录类)
public class FileLog implements<
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值