栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

GOF23-门面模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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();
}

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749775.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号