package factoryMethodModel;/** * 工厂方法模式 * * @author LiMing E-mail:1151143484@qq.com * @date 2017年6月14日 上午8:19:28 * * *       简单工厂模式前边已经提到过了:缺点是违背了开放封闭原则(对扩展开放 但是对修改不是封闭的 每次添加新的功能需要修改工厂类) *       工厂方法模式是简单工厂模式的升级 不进具有简单工厂模式的优点 还复合开放封闭原则 因为他是把创建每一类对象都封装成一个工厂 *       这样如果需要添加新的类别 只需要添加新的子类工厂方法就行了 是不需要修改父类工厂方法的(修改封闭) 具体实现看下边 *        *       工厂方法唯一的不足就是把逻辑判断放到客户端  后期可以通过反射 对就是反射来简化客户端的操作 * */public class FactoryMethodModel {public static void main(String[] args) {// 使用加法Oprator add = AddFactory.createOprator();add.method();Oprator reduce = ReduceFactory.createOprator();reduce.method();/* * 就在这个时候 想加一个乘法方法 只需要加一个乘法执行方法class Multiplication 和 乘法构造工厂 * 不需要修改任何已存在的类 添加完之后 就可以很方便的用了 */Oprator mltiplication = MultiplicationFactory.createOprator();mltiplication.method();}}/** * 抽象工厂类 */class Factory {public static Oprator createOprator() {return new Oprator();}}/** * 加法类工厂 */class AddFactory extends Factory {public static Oprator createOprator() {return new Add();}}/** * 减法类工厂 */class ReduceFactory extends Factory {public static Oprator createOprator() {return new Reduce();}}/** * 操作父类 */class Oprator {public void method() {System.out.println("父类操作方法");}}/* * 加法类 */class Add extends Oprator {public void method() {System.out.println("执行加法");}}/* * 减法类 */class Reduce extends Oprator {public void method() {System.out.println("执行减法");}}/* * 添加乘法 */// 操作类class Multiplication extends Oprator {public void method() {System.out.println("执行乘法");}}// 工厂类class MultiplicationFactory extends Factory {public static Oprator createOprator() {return new Multiplication();}}


©著作权归作者所有:来自51CTO博客作者木子的昼夜的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 深度学习可以不要乘法,北大、华为诺亚新论文:加法替代,效果不变,延迟
  2. 流式数据处理在百度数据工厂的应用与实践
  3. C语言实现乘法口诀表
  4. 最小二乘法来源(翻译)
  5. 从作坊到工厂 — 传统企业 DevOps 改造历程
  6. 矩阵的乘法运算与css的3d变换(transform)
  7. laravel8 模型工厂数据填充填坑
  8. 从作坊到工厂:传统企业 DevOps 改造历程
  9. 特斯拉上海超级工厂监控遭“泄密”,究竟数据该如何“加密”?

随机推荐

  1. Android(安卓)java.io.IOException异常情
  2. android初次学习(android studio安装及注
  3. Android:onTouch()和onTouchEvent()的区
  4. Android中的sqlite Cursor操作详解
  5. Android图形系统分析与移植 -- 三、内核
  6. Android多媒体播放器源码解析(stagefrigh
  7. android几种布局
  8. Android 实现json网络数据通过BaseAdapte
  9. android camera API1调用camera HAL3流程
  10. 秒懂Android注解处理器(Android(安卓)Anno