GOF23-门面模式

门面模式也称之为外观模式,用户不需要了解里面的具体实现。
举个例子
发动机工厂能生产6at变速箱,8at变速箱10at变速箱。
1、没有用到设计模式

public interface Engine{
	void doEngine();
}


public class SixAt implements Engine{
	public String doEngine(){
		system.out.println("制造6at");
	}
}

public class EightAt implements Engine{
	public String doEngine(){
		system.out.println("制造8at");
	}
}

public class TenAt implements Engine{
	public String doEngine(){
		system.out.println("制造10at");
	}
}

2、用户使用

public static void main(String[] args){
	Engine sixAt = new SixAt();
	sixAt.doEngine();
	
	Engine eightAt = new EightAt();
	sixAt.doEngine();
	
	Engine tenAt= new TenAt();
	sixAt.doEngine();
}

从上,我们可以看到,当用户要使用哪个类时需要知道具体的实现类。
3、用上设计模式

public class Engine{
	private SixAt sixAt;
	private EightAt eightAt;
	private TenAt tenAt;
	
	public Engine(){
		this.sixAt = new SixAt();
		this.eightAt= new EightAt();
		this.tenAt= new TenAt();
	}
	public String do6atEngine(){
		system.out.println("制造6at");
	}
	
	public String do8atEngine(){
		system.out.println("制造8at");
	}

	public String do10atEngine(){
		system.out.println("制造10at");
	}
}

4、这时候调用

public static void main(String[] args){
	Engine engine = new Engine();
	engin.do6atEngine();
	engin.do8atEngine();
	engin.do10atEngine();
}

从上可以看出用户无需再次关切具体的实现类而是直接调用门面给了什么方法,直接调用即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值