工厂模式的思想主要为:多个类似的子类继承同一个父类,对其父类中的变量进行操作;工厂类负责判断、控制哪个子类被执行,而工厂类调用子类完成后,返回的结果是该子类的父类,该父类中的变量已经被操作过了,访问该父类,得到我们想要的结果。

public class Father{                   //父类protected static String one;protected static String two;
}public class Son1 extends Father{      //子类
 Son1(){one = "son1";                        //操作父类中的变量
 }
}public class Son2 extends Father{     //子类
 Son2(){two = "son2";}
}public class Factory {  //工厂类public Father getSon(String s) {      //调用子类,返回父类if (s.equals("1")) {return new Son1();} else {return new Son1();}}
}

调用方法举例

    Factory factory  = new Factory();Father father = factory.getSon("1");  //调用时不需要判断调用哪个子类,参数不同,工厂自动判断调用的子类。本例调用了Son1子类
System.out.println(father.one);  //查看结果
System.out.println(father.two);

工厂类中的创建子类的方法亦可放在父类中实现。

转载于:https://www.cnblogs.com/justdoitba/articles/8065763.html

工厂模式的思想主要为相关推荐

  1. 工厂方法模式和简单工厂模式的区别

    简单工厂模式 就我们的计算器例子来说,简单工厂模式的思想就是,创建一个运算类,创建一个简单工厂类. 运算类派生加法类.减法类.乘法类...... 简单工厂类主要是根据传入的符号字符串,做相应的条件判断 ...

  2. python工厂模式 理解_浅谈Python设计模式 - 抽象工厂模式

    声明:本系列文章主要参考<精通Python设计模式>一书,并且参考一些资料,结合自己的一些看法来总结而来. 在上一篇我们对工厂模式中的普通工厂模式有了一定的了解,其实抽象工作就是 表示针对 ...

  3. Java23种设计模式之工厂模式

    工厂模式 前言 一.简单工厂模式 二.工厂方法模式 优点: 缺点: 三.工厂方法模式适合应用场景 总结 前言 核心本质: 1.实例化对象不使用new,用工厂方法代替, 2.将选择实现类,创建对象统一管 ...

  4. 设计模式(二 三)工厂模式:1-简单工厂模式

    模拟场景: 需要构造一个运算器(Operation),分别负责加减乘除的运算功能. 思想: 这里需要构造四个 Operation,可以使用 Factory 去统一创建这四个对象. 所需要构造的对象是运 ...

  5. 理解设计模式中的工厂模式

    在理解设计模式中的单例模式一文中介绍了创建型模式中最为简单的一种:单例模式,并推荐了几种可以在实际生产中使用的线程安全的形式.本文将继续介绍创建型模式中的工厂方法模式和抽象工厂模式,同样使用代码和类图 ...

  6. 策略模式与工厂模式的区别

    定义: 工厂模式的思想主要为:多个类似的子类继承同一个父类,对其父类中的变量进行操作:工厂类负责判断.控制哪个子类被执行,而工厂类调用子类完成后,返回的结果是该子类的父类,该父类中的变量已经被操作过了 ...

  7. 简单(静态)工厂模式

    简单(静态)工厂模式 观察者模式 一.背景介绍 工厂模式是设计模式的一种,设计模式是自程序开发逐渐就有的,提高开发效率的一种设计思路,先前的开发者们一直在用,只是后来这四个人出了一本书总结了下,就是现 ...

  8. C++设计模式----工厂模式

    文章目录 工厂模式介绍 简单工厂模式 简单工厂模式具体的应用情景 简单工厂模式的定义 工厂方法模式 工厂方法模式具体的应用情景 工厂方法模式的定义 抽象工厂模式 工厂方法模式具体的应用情景1---战斗 ...

  9. Python 设计模式 - 工厂模式

    精通Python设计模式第二版 第 1 章 工厂模式 学习笔记 工厂模式 工厂模式的思想意在简化对象的创建过程.调用者(客户端)不清楚对象的来源以及生成对象的方式,调用者只需要调用某个方法或者实例某个 ...

  10. 设计模式 笔记4 | 简单工厂模式 在源码中的应用 | Calendar 日历 | 源码浅析 | 使用总结 | 建造者模式

    文章目录 一.Calendar 日历类 1.1 内部属性 1.2 设置时间属性值 1.3 获取时间属性 1.4 使用 Calander 计算时间 二.Calender 类中的设计模式 2.1 简单工厂 ...

最新文章

  1. python导入excel数据-Python导入数值型Excel数据并生成矩阵操作
  2. java中ArrayList与LinkedList的区别
  3. 项目管理基础培训分享
  4. 消息测试服务器,测试统一消息服务器功能
  5. 个人计算机的防毒软件无法防御,在win10系统中无法启动defender防御软件的解决方法...
  6. Java实例---flappy-bird实例[最终版]
  7. 计算机网络应用基础_2020年天津市成人高考 高起专 计算机基础题型总结
  8. java改变人物动作_Java创建对象的动作分析
  9. ios 添加block 类别_ios block是什么数据类型?
  10. 浅谈SpringAOP功能源码执行逻辑
  11. xp系统usb android,xp系统usb网络共享怎么设置,xp系统usb手机网络共享设置方法
  12. Ffmpeg视频压制的基础知识
  13. 【内部流出,勿做商用】今日教大家如何抢聚划算
  14. unity-shader-延迟渲染
  15. CodeBlocks出现不支持16位应用程序 360解决方法 已经失效(2019-11-22)
  16. 《数据库系统原理》教学上机实验报告
  17. 一起摇摆html5游戏,和 transformjs 一起摇摆
  18. 甲乙两列客车的长分别为150m和200m,它们相向行驶在平行的轨道上,已知甲车上某乘客测得乙车在他窗口外经过的时间为10秒,那么,乙车上的乘客看见甲车在他窗口外经过的时间是()
  19. mongo DB数据库bindIP的配置和我的理解(bindIP不是应用服务器的IP)
  20. OSPF虚电路去区域路由过滤

热门文章

  1. mysql注入啥意思_【菜鸟学注入】之MySQL报错注入详解
  2. 共享文件夹只能连接20人_英语正能量 | 快乐可以与人共享,苦难却只能自己坚强...
  3. #includesome_file.h和#includemy_file.h的区别
  4. LINUX一个正确的mime xml范例
  5. marven编译时:<pre>错误: 不允许使用自关闭元素</pre>
  6. 奇怪的问题:为什么手机过一年就变得很慢?
  7. ERROR: cuvid requested, but not all dependencies are satisfied: ffnvcodec
  8. static library libs/libvpx/libvpx.a is not portable!
  9. LINUX下载编译libsrtp-2.3.0
  10. 管理感悟:再好的设计,不如能运行的原型