门面模式

来源:互联网 发布:风衣 孙燕姿 知乎 编辑:程序博客网 时间:2024/06/08 13:21
package com.test.design.facade;public interface ILetterProcess {public void writeContext(String context);public void fillEnvelope(String address);public void sendLetter();}


package com.test.design.facade;public class LetterProcess implements ILetterProcess {@Overridepublic void fillEnvelope(String address) {System.out.println("邮寄地址为:" + address);}@Overridepublic void sendLetter() {System.out.println("信件已发送!");}@Overridepublic void writeContext(String context) {System.out.println("正在写信,内容为:" + context);}}

package com.test.design.facade;public class PostOffice {private LetterProcess letterProcess = new LetterProcess();public void sendLetter(String address, String context){letterProcess.writeContext(context);letterProcess.fillEnvelope(address);//在这中间还可增加一些自己的业务操作letterProcess.sendLetter();}}

package com.test.design.facade;public class Client {public static void main(String[] args) {PostOffice office = new PostOffice();String address = "北京市海淀区";String context = "这就是门面模式";office.sendLetter(address, context);}}

这是一个很好的封装方法,一个子系统比较复杂的实话,比如算法或者业务比较复杂,就可以封装出一个或多个门面出来,项目的结构简单,而且扩展性非常好。还有,在一个较大项目中的时候,为了避免人员带来的风险,也可以使用这个模式,技术水平比较差的成员,尽量安排独立的模块(Sub System),然后把他写的程序封装到一个门面里。使用门面模式后,对门面进行单元测试,约束项目成员的代码质量,对项目整体质量的提升也是一个比较好的帮助。


原创粉丝点击