您的位置:首页 > 其它

常用的设计模式(七)——门面设计模式

2015-11-13 15:19 363 查看
随着系统的不断改进和开发,它们会变得越来越复杂,系统会生成大量的类,这使得程序流程更难被理解。门面模式可为这些类提供一个简化的接口,从而简化访问这些类的复杂性。门面模式(Facade)也被称为正面模式、外观模式,这种模式用于将一组复杂的类包装到一个简单的外部接口中。
	public interface LetterProcess {//首先要写信的内容public void writeContext(String context);//其次写信封public void fillEnvelope(String address);//把信放到信封里public void letterInotoEnvelope();//然后邮递public void sendLetter();}
写信过程的具体实现:
	public class LetterProcessImpl implements LetterProcess {//写信public void writeContext(String context) {System.out.println("填写信的内容...." + context);}//在信封上填写必要的信息public void fillEnvelope(String address) {System.out.println("填写收件人地址及姓名...." + address);}//把信放到信封中,并封好public void letterInotoEnvelope() {System.out.println("把信放到信封中....");}//塞到邮箱中,邮递public void sendLetter() {System.out.println("邮递信件...");}}
	public class ModenPostOffice {private LetterProcess letterProcess = new LetterProcessImpl();//写信,封装,投递,一体化了public void sendLetter(String context,String address){//帮你写信letterProcess.writeContext(context);//写好信封letterProcess.fillEnvelope(address);//把信放到信封中letterProcess.letterInotoEnvelope();//邮递信件letterProcess.sendLetter();}}
测试用例
	public class Client {public static void main(String[] args) {//现代化的邮局,有这项服务,邮局名称叫Hell RoadModenPostOffice hellRoadPostOffice = new ModenPostOffice();//你只要把信的内容和收信人地址给他,他会帮你完成一系列的工作;String address = "Happy Road No. 666,God Province,Heaven"; //定义一个地址String context = "Hello,It's me,do you know who I am? I'm your old lover.I'd like to....";hellRoadPostOffice.sendLetter(context, address);}}
门面模式讲解完毕,这是一个很好的封装方法,一个子系统比较复杂的实话,比如算法或者业务比较复杂,就可以封装出一个或多个门面出来,项目的结构简单,而且扩展性非常好。还有,在一个较大项目中的时候,为了避免人员带来的风险,也可以使用这个模式,技术水平比较差的成员,尽量安排独立的模块(Sub System), 然后把他写的程序封装到一个门面里,尽量让其他项目成员不用看到这些烂人的代码,看也看不懂,我也遇到过一个“高人”写的代码,private 方法、构造函数、常量基本都不用,你要一个public方法,好,一个类里就一个 public 方法,所有代码都在里面,然后你就看吧,一大坨的程序,看着能把人逼疯,使用门面模式后,对门面进行单元测试,约束项目成员的代码质量,对项目整体质量的提升也是一个比较好的帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: