设计模式4-建造者模式

首先说说建造者模式要解决一个什么样的问题:
流程控制,即保证方法先后顺序正确且没有遗漏.用于灵活指导操作细节.

建造者模式包括:
一个导演类:用于规定操作顺序
一个建造者接口:用于规定建造者的操作
具体的建造者:建造者的具体实现类

例如:
public class BuilderTest {
	public static void main(String[] args) {
		FileBuilder appendFilebuilder=new AppendFilebuilder();
		FileBuilder rewriteFilebuilder=new RewriteFilebuilder();
		FileDirector fileDirector=new FileDirector();
		fileDirector.operateFile(appendFilebuilder);
		fileDirector.operateFile(rewriteFilebuilder);
	}
}


class FileDirector {
	/*FileBuilder fileBuilder;
	public FileDirector(FileBuilder fileBuilder) {
		this.fileBuilder=fileBuilder;//如果只有一个指导方法可以,直接将builder当做方法参数
	}*/
	public void operateFile(FileBuilder fileBuilder) {
		fileBuilder.openFile();
		fileBuilder.editFile();
		fileBuilder.closeFile();
	}
}
interface FileBuilder{
	void openFile();
	void editFile();
	void closeFile();
}
class AppendFilebuilder implements FileBuilder{
	@Override
	public void openFile() {
		System.out.println("打开需要继续编写的文件A");
	}
	@Override
	public void editFile() {
		System.out.println("继续编写A");		
	}
	@Override
	public void closeFile() {
		System.out.println("关闭A");
	}
}
class RewriteFilebuilder implements FileBuilder{
	@Override
	public void openFile() {
		System.out.println("打开需要重新编写的文件B");
	}
	@Override
	public void editFile() {
		System.out.println("删除B文件内容");
		System.out.println("输入内容");		
	}
	@Override
	public void closeFile() {
		System.out.println("关闭B");
	}
}
结果:
打开需要继续编写的文件A
继续编写A
关闭A
打开需要重新编写的文件B
删除B文件内容
输入内容
关闭B


其实设计思想大多差不多,就是不要有重复代码,尽量的依赖抽象,反应在编码上,就是尽量的用接口去适配;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值