设计模式之门面模式

门面模式,就是将一些复杂的小系统整合起来,为用户的使用提供一个简单的接口,统一一个高层接口给用户使用,打个比方,电视的按钮就是一个门面模式,因为我们换台只需要拧按钮,而不必关心电视机里面经历了哪些过程。

现在我用一个邮局递信的例子来说明问题:

我现在定义的邮局和现实中的邮局有些差别,假设有这样一个邮局,当我们想发信时,我们只需要提供信的内容和地址,其他的都由邮局来做。

那么先定义写信流程的接口:

public interface LetterWriter
{
	//写信的内容
	public void writeContent(String content);
	//写信的地址
	public void writeAddress(String address);
	//将信放入信封
	public void inMailer();
	//寄信
	public void sendMail();
	
}


实现这个接口:

public class LetterWriterImpl implements LetterWriter
{

	@Override
	public void inMailer()
	{
		// TODO Auto-generated method stub
		System.out.println("放入信封");

	}

	@Override
	public void sendMail()
	{
		// TODO Auto-generated method stub
		System.out.println("发信");

	}

	@Override
	public void writeAddress(String address)
	{
		// TODO Auto-generated method stub
		System.out.println("写地址:"+address);

	}

	@Override
	public void writeContent(String content)
	{
		// TODO Auto-generated method stub
		System.out.println("写内容:"+content);

	}

}


现在还没有邮局,那么如果用户想发信,必须经历如下过程

public static void main(String[] args)
	{

		
		LetterWriter writer=new LetterWriterImpl();
		writer.writeContent("我是袁泽瑶");
		writer.writeAddress("湖北省武汉市武汉理工大学鉴湖校区");
		writer.inMailer();
		writer.sendMail();
	}


现在在附近有一个邮局成立了:帮你完成写信,写地址,装进信封,发信,你只需要提供内容和地址即可

public class PostOffice
{
	private LetterWriter writer=new LetterWriterImpl();
	
	//发送邮件
	public void Send(String address,String content)
	{
		writer.writeContent(content);
		writer.writeAddress(address);
		writer.inMailer();
		writer.sendMail();
	}
}


那么此时如果一个用户想发信:非常简单

public static void main(String[] args)
	{

		PostOffice office=new PostOffice();
		office.Send("Hello","Good");
	}


 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值