顾名思义,工厂模式就是类似于生活中的工厂,可以生产我们想要的东西,回到代码,假如我们需要一个实例,直接从工厂中拿即可。

eg:假如我们定义一个“球”类的接口

 public interface Ball{
public void sayName();
}

此时我们再定义两个球类实现这个接口

 public class Football implements Ball{
public void sayName() {
System.out.println("i am a football");
}
}
 public class Basketball implements Ball{
public void sayName() {
System.out.println("i am a basketball ");
}
}

最后我们定义工厂:

 public class BallFactory{
public static Ball getBall(String ballname){
Ball b = null ;
if("football".equals("ballname")){
b=new Football();
}
if("basketball".equals("ballname")){
b=new Basketball();
}
return b;
}
public static void main(String[] a){
Ball b = BallFactory.getBall("football");
b.sayName();
}
}

当我们需要哪个球类时,就可以从工厂中拿了。

最新文章

  1. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
  2. An exception occurred while acquiring a poolable resource. Will retry.
  3. OC-protocol
  4. text()、html() 以及 val()的区别
  5. EC6 map 和 set
  6. JS-定时器管理实例函数封装
  7. js追加元素,以及元素位置
  8. Vim优化
  9. 十一 SOA 与 ESB
  10. 嵌入式中的 *(volatile unsigned int *)0x500 解释
  11. SSRS和SSAS是支持VB的
  12. js对象的复制,传递,新增,删除和比较
  13. myBatis源码之BatchExecutor
  14. ssm框架中文请求乱码get
  15. 2019 The 19th Zhejiang University Programming Contest
  16. yum 原理C/S原理结构图
  17. vue 之 key
  18. VMware中四种网络连接模式的区别
  19. 【转】linux 磁盘挂载
  20. SQL Server 2008 R2:error 26 开启远程连接详解

热门文章

  1. [ACM_模拟] ZOJ 3713 [In 7-bit 特殊输出规则 7bits 16进制]
  2. Django站点管理--ModelAdmin
  3. 深入理解 CSS 的 :before 和 :after 选择器(制作select下拉列表美化插件)
  4. 关于堆排序和topK算法的PHP实现
  5. 隐藏路由器的WIFI信号,防蹭网
  6. paip.提升效率--gui 的选择--swing最佳实践swt awt
  7. Oracle数据库建表+添加数据练习
  8. WindowsPhone App如何扩展能够使用的内存
  9. FreeCodeCamp 中级算法(个人向)
  10. 纯css制作带三角border篇(兼容所有浏览器)