设计模式之工厂设计模式,3普通工厂方法模式3 来源: javaer 分享于 2023-03-25 点击 6383 次 点评:26 设计模式之工厂设计模式,3普通工厂方法模式3 1.开发环境 IDEA版本: 2022.1.4 JDK版本:17.0.3 2.模式由来 2.1 自定义MailSender类 2.2 自定义Computer类 2.3 分析图 2.4 案例分析 由于Computer类和MailSender类之间的耦合度比较高,而且创建对象的代码太固定了,若希望使用短信发送的功能需要修改Computer类,这种修改违背了开闭原则,为了解决该问题,就可以将创建对象的工作移交出去,而工厂设计模式就是一种创建对象的设计模式,而且可以在创建对象时不对外暴露具体的创建逻辑。 3 普通工厂方法模式 3.1 基本概念 普通工厂方法模式就是建立一个工厂类,通过生产方法的参数来进行具体实例的创建。 3.2 自定义Sender接口 3.3 修改MailSender类 3.4 自定义SmsSender类 3.5 自定义SendFactory类 3.6 修改Computer类 3.7 分析图 3.8 案例分析 在普通工厂方法模式中,若传递的字符串出错,则不能正确创建对象,而且可能出现空指针异常,所以容错率不高。 4.多个工厂方法模式 4.1 基本概念 多个工厂方法模式就是通过多个不同的生产方法对实现同一接口的不同实现类分别进行对象的创建。 4.2 修改SendFactory类 4.3 修改Computer类 4.4 分析图 4.5 案例分析 在多个工厂方法模式中,为了能够正确创建对象,需要先创建工厂类的对象才能调用工厂类中的生产方法。 5.静态工厂方法模式 5.1 基本概念 静态工厂方法模式就是将多个不同的生产方法加上static关键字提升为类层级,此时只需要通过类名.的方式就可以进行方法的调用,从而进行不同实例的创建。 5.2 修改SendFactory类 5.3 修改Computer类 5.4 分析图 5.5 案例分析 静态工厂方法模式中类的创建依赖工厂类,如果想要扩展程序来生产新的产品,就必须对工厂类的代码进行修改,这就违背了开闭原则。 6.抽象工厂模式 6.1 基本概念 抽象工厂模式就是将多个不同的生产方法放在不同的工厂类中,让多个工厂类实现同一个接口,此时只需要通过不同的工厂类就可以进行不同实例的创建。 6.2 自定义SendFactory接口 6.3 自定义MailSendFactory类 6.4 自定义SmsSendFactory类 6.5 修改Computer类 6.6 分析图 6.7 案例分析 现在想要拓展程序生产新的产品,就只需要增加新的工厂类即可,不用违背开闭原则,同时每个工厂类对应一个产品,符合单一职责的原则。 更多精彩欢迎关注微信公众号《格子衫007》! 相关文章动态代理与责任链模式,代理模式可以理解为您深入浅出Seata的AT模式,TM:事务管理器即T聊一聊装饰者模式,主要解决直接继承下因设计模式之单例设计模式,1.2实现流程私有化两万字盘点被玩烂了的9种设计模式,单例模式单例模式是指
用户点评