最新消息

java外观模式(facade)

设计模式 金牌剑客 1615℃ 0评论

外观模式的概念

为一组内部接口提供一个统一的外部调用接口,简化外部调用。

案例

代码生成器需要生成controller、service、dao层代码,而具体生成代码逻辑在各个类ControllerGenerator、ServiceGenerator,DaoGenerator中实现。

不使用外观模式时,调用的地方(Client)需要实例化ControllerGenerator、ServiceGenerator,DaoGenerator这三个类,并调用代码生成的方法,当调用的地方有很多的时候,调用复杂。

使用外观模式时,提供一个统一的外部调用接口CodeFascade,在CodeFascade中实现对ControllerGenerator、ServiceGenerator,DaoGenerato的调用,而所有的Client只需调用CodeFascade即可。

UML类图

fascade

Java代码

ControllerGenerator.java

public class ControllerGenerator {
	public void generate(){
		System.out.println("generate controller code.");
		// ...
	}
}

ServiceGenerator.java

public class ServiceGenerator {
	public void generate(){
		System.out.println("generate service code.");
		// ...
	}
}

DaoGenerator.java

public class DaoGenerator {
	public void generate(){
		System.out.println("generate dao code.");
		// ...
	}
}

CodeFascade.java

public class CodeFascade {
	public void generate(){
		new ControllerGenerator().generate();
		new ServiceGenerator().generate();
		new DaoGenerator().generate();
	}
}

Client.java

public class Client {
	public static void main(String[] args) {
		new CodeFascade().generate();
	}
}

转载请注明:QualInfo » java外观模式(facade)

喜欢 (2)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 您好应该是facade而不是fascade!多谢分享!!
    shulinzi2016-08-10 09:34 回复