设计模式(二)-- 外观模式(Facade)

本文介绍了一种常用的设计模式——外观模式(Facade),该模式通过引入一个外观类简化客户端与子系统内部多个模块之间的交互,提高了系统的易用性。示例展示了如何在软件架构中应用外观模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计模式(二)

外观模式(Facade)

为了解决子系统外部的客户端在使用子系统的时候,既能简单地使用这些子系统内部的模块功能,而又不用客户端去与子系统内部的多个模块交互的问题。

为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

外观模式就是通过引入一个外观类,在这个类里面定义客户端想要的简单的方法,然后在这些方法的实现里面,由外观类再去分别调用内部的多个模块来实现功能,从而让客户端变得简单。这样一来,客户端就只需要和外观类交互就可以了。

package Facade;

 

public classConfigModel {

 

        private boolean needGenPresentation = true;

        private boolean needGenBusiness = true;

        private boolean needGenDAO = true;

        public boolean isNeedGenPresentation(){

        return needGenPresentation;

        }

        public boolean isNeedGenBusiness(){

        return needGenBusiness;

        }

        public boolean isNeedGenDAO(){

        return needGenDAO;

        }

        public void setNeedGenPresentation(boolean needGenPresentation){

        this.needGenPresentation=needGenPresentation;

        }

        public void setNeedGenBusiness(boolean needGenBusiness){

        this.needGenBusiness=needGenBusiness;

        }

        public void setNeedGenDAO(boolean needGenDAO){

        this.needGenDAO=needGenDAO;

        }

}

 

package Facade;

 

public classConfigManager {

        private static ConfigManager manager = null;

        private static ConfigModel cm = null;

        private ConfigManager(){

        //

        }

        public static ConfigManager getInstance(){

        if(manager==null){

             manager = new ConfigManager();

             cm new ConfigModel();

        }

        return manager;

        }

        public ConfigModel getConfigDate(){

        return cm;

        }

}

 

package Facade;

 

public classPresentation {

       public void generate(){

       ConfigModel cm = ConfigManager.getInstance().getConfigDate();

       if(cm.isNeedGenPresentation()){

           System.out.println("Generate Presentation Layer");

       }

       }

}

 

package Facade;

 

public classBusiness {

    public void generate(){

       ConfigModel cm = ConfigManager.getInstance().getConfigDate();

       if(cm.isNeedGenBusiness()){

           System.out.println("Generate Business Layer");

       }

   }

}

 

package Facade;

 

public classDAO {

    public void generate(){

       ConfigModel cm = ConfigManager.getInstance().getConfigDate();

       if(cm.isNeedGenDAO()){

           System.out.println("Generate DAO Layer");

       }

   }

}

 

package Facade;

 

public classFacade {

     publicvoidgenerate(){

      new Presentation().generate();

      new Business().generate();

      new DAO().generate();

     }

}

 

package Facade;

 

public classClient {

    publicstaticvoidmain(String[] args){

     new Facade().generate();

    }

}

Output:

Generate Presentation Layer

Generate Business Layer

Generate DAO Layer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值