常用设计模式

xiaoxiao2021-02-28  112

简单工厂 又称为静态工厂,因为他里面的方法一般均为静态方法

接口 public interface Api { void test(String s); } 实现A public class ImplA implements Api { @Override public void someOperation(String s) { System.out.println("ImplA s = "+s); } } 实现B public class ImplB implements Api { @Override public void someOperation(String s) { System.out.println("ImplB s = "+s); } } 客户端 public class Client { public static void main(String[] args) { Api api = Factory.createApi(1); api.someOperation("你好"); } }

简单工厂是用来创建接口,抽象类,具体类的对象 使用场景:在工厂里选择实现

附:简单工厂类图


外观模式

外观模式是对一组子系统接口的包装

表现层 public class Presentation { public void generate(){ ConfigModel cm = ConfigManager.getInstance().getConfigData(); if(cm.isNeedGenPresentation()){ System.out.println("正在生成表现层代码"); } } } 逻辑层 public class Business { public void generate(){ ConfigModel cm = ConfigManager.getInstance().getConfigData(); if(cm.isNeedGenBusiness()){ System.out.println("正在生成逻辑层代码"); } } } dao层 public class Dao { public void generate(){ ConfigModel cm = ConfigManager.getInstance().getConfigData(); if(cm.isNeedGenDao()){ System.out.println("正在生成数据层代码"); } } } 配置管理 public class ConfigManager { private ConfigManager(){} private static ConfigManager manager = null; private static ConfigModel cm = null; public static ConfigManager getInstance(){ if(manager == null){ manager = new ConfigManager(); cm = new ConfigModel(); } return manager; } public ConfigModel getConfigData(){ return cm; } } 配置模型数据 public class ConfigModel { private boolean needGenPresentation = true; private boolean needGenBusiness = true; private boolean needGenDao = true; public boolean isNeedGenPresentation() { return needGenPresentation; } public void setNeedGenPresentation(boolean needGenPresentation) { this.needGenPresentation = needGenPresentation; } public boolean isNeedGenBusiness() { return needGenBusiness; } public void setNeedGenBusiness(boolean needGenBusiness) { this.needGenBusiness = needGenBusiness; } public boolean isNeedGenDao() { return needGenDao; } public void setNeedGenDao(boolean needGenDao) { this.needGenDao = needGenDao; } } 外观 public class Facade { public void generate(){ new Presentation().generate(); new Business().generate(); new Dao().generate(); } } 使用外观 public class Client { public static void main(String[] args) { new Facade().generate(); } }

附:外观模式类图

转载请注明原文地址: https://www.6miu.com/read-67959.html

最新回复(0)