简单工厂模式

39 篇文章 2 订阅

场景: 创建对象
简单工厂: 提供创建对象的功能,不需要关心具体的实现

好处: 降低客户端与模块之间的耦合度(最少知识原则)

用例:
需求:导出数据
文件:数据库文件、文本文件

工厂方法:把对象的实现延迟到子类完成

ExportFileApi.java

package simpleFactory;

public interface ExportFileApi {
	public void export();
}

ExportDBFile.java

package simpleFactory;

public class ExportDBFile implements ExportFileApi {

	@Override
	public void export() {
		System.out.println("输出DB数据");
	}

}

ExportTextFile.java

package simpleFactory;

public class ExportTextFile implements ExportFileApi {

	@Override
	public void export() {
		System.out.println("输出Text数据");
	}

}

ExportOperator.java

package simpleFactory;

public abstract class ExportOperator {
	
	public abstract ExportFileApi newFile();
	
	public void Export() {
		System.out.println("ExportOperator--Export");
		ExportFileApi file = newFile();
		file.export();
	}
}

ExportDBOperator.java

package simpleFactory;

public class ExportDBOperator extends ExportOperator {

	@Override
	public ExportFileApi newFile() {
		System.out.println("ExportDBOperator::newFile");
		return new ExportDBFile();
	}

}

ExportTextOperator.java

package simpleFactory;

public class ExportTextOperator extends ExportOperator {

	@Override
	public ExportFileApi newFile() {
		// TODO Auto-generated method stub
		return new ExportTextFile();
	}

}

Client.java

package simpleFactory;

public class Client {

	public static void main(String[] args) {

		ExportDBOperator db = new ExportDBOperator();
		db.Export();

		ExportTextOperator text = new ExportTextOperator();
		text.Export();
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值