概述:

定义一个用于创建对象的接口,让子类决定实例化哪一个类,FactoryMethod使一个类的实例化延迟到子类。

适用性:

1.当一个类不知道它所必须创建的对象的类的适合

2.当一个类希望由它的子类来指定它所创建的对象的时候

3.当类将创建对象的职责委托给多个帮助子类中的某一个,并且你 希望将哪一个帮助子类是代理者这一信息局部化的时候

package com.day13.abstractTest;import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;/*
工厂模式:对象创建复杂,甚至无法完成,通过工厂方法来获取对象*/
interface Worker {void Worker();
}class Teacher implements Worker {@Overridepublic void Worker() {System.out.println("老师在上课");}
}class Student implements Worker {@Overridepublic void Worker() {System.out.println("学生在学习");}
}class Factory {public static Worker getTeacher() {return new Teacher();}public static Worker getStudent() {return new Student();}
}public class FactoryTest {public static void main(String[] args) {//对象的获取:new,工厂方法,反序列化,反射,直接开辟空间//Runtime runtime = Runtime.getRuntime();//通过方法获取对象Worker teacher = Factory.getTeacher();teacher.Worker();Worker student = Factory.getStudent();student.Worker();}
}

总结:

FactoryMethod模式是设计模式中应用最广泛的模式,在面向对象的编程中,对象的创建工作非常简单,对象创建时机却很重要,FactoryMethod解决的就是这个问题,它通过面向对象的手法,将所要创建的具体对象的创建工作延迟到了子类,从而提供了以中扩展的策略,较好的解决了这种紧耦合的关系。

Java(基础)工厂方法(FactoryMethod)相关推荐

  1. Java 的工厂方法及代理模式

    Java 的工厂方法及代理模式 工厂方法(FactoryMethod) 概述:定义一个用于创建对象的接口,让子类决定实例化哪一个类.FactoryMethod使一个类的实例化延迟到其子类. 适用性: ...

  2. Java基础学习——方法

    Java基础学习--方法 前言 本文将介绍有关Java面向对象编程的知识之一:方法:其中包括方法的概念,三类方法的格式.方法的重载以及方法的内存 方法的概念 方法是程序中最小的执行单元 方法定义:将一 ...

  3. Java 静态工厂方法详解

    Java 静态工厂方法详解 本文章主要是对<Effective Java>对静态工厂方法的理解 第一次使用静态工厂方法是在HIT<Software Construction>课 ...

  4. Java设计模式--工厂方法模式

    工厂方法模式 1.工厂方法模式的概述 1.1工厂模式是简单工厂模式的延伸,符合开闭原则的基础上,还可以在增加新的具体产品对象时不需要对已有系统做任何修改. 1.2工厂方法模式:定义一个用于创建对象的接 ...

  5. 《转》java设计模式--工厂方法模式(Factory Method)

    本文转自:http://www.cnblogs.com/archimedes/p/java-factory-method-pattern.html 工厂方法模式(别名:虚拟构造) 定义一个用于创建对象 ...

  6. 『创建型』简单工厂SimpleFactory、工厂方法FactoryMethod、抽象工厂AbstractFactory

    为什么80%的码农都做不了架构师?>>>    几点说明 永远不要纠结于在什么时候使用什么模式 永远不要纠结于什么模式适用于什么情景 永远不要去死记任何的模式 并不是说,23种设计模 ...

  7. Java基础02 方法与数据成员

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在Java基础01 从HelloWorld到面向对象,我们初步了解了对象(obje ...

  8. Java设计模式-工厂方法模式和抽象工厂模式

    工厂方法模式定义: 即定义一个创建对象的接口(即抽象工厂类),让其子类(具体工厂类)决定实例化哪一个类(具体产品类)."一对一"的关系 1,一抽象工厂类派生出多个具体工厂类: 2, ...

  9. JAVA设计模式 - 工厂方法模式

    工厂方法模式(Factory Pattern) 是一种创建型设计模式 , 它是Java中最常用的设计模式之一 . 1 . 工厂方法模式的定义 定义一个创建对象的接口 , 让子类决定实例化哪一个类 . ...

  10. JAVA基础——toString()方法,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

最新文章

  1. python初学到底怎么学?大神三天快速学习python的方法留下的笔记
  2. 3分钟读懂!微服务分布式日志体系架构!
  3. 《算法导论》(一)--插入排序与合并排序
  4. 设计模式学习笔记-观察者模式(转)
  5. 算法--360面试:使用递归实现:a0=1,a1=1;a2=a0+a1;a3=a1+a2...以此类推,求a30
  6. naarray查询 swift_数据分析库之Numpy
  7. ITK:对多个线程上的数据进行操作以利用多核处理器
  8. spring 自定义日志_Spring和Hibernate的自定义审核日志
  9. mysql实战33 | 我查这么多数据,会不会把数据库内存打爆?
  10. ScrollView嵌套ViewPager,ViewPage动态设置高度,嵌套事件冲突——滑动冲突解决方法
  11. Python input 函数 -Python零基础入门教程
  12. 开源NewSQL – CockroachDB在百度内部的应用与实践
  13. 中俄国际社区大佬共话Java,苦Lambda表达式久矣?
  14. 带着canvas去流浪系列之五 绘制K线图
  15. Java开发人员常用网站收录
  16. 2. 知识图谱-命名实体识别(NER)详解
  17. 软考中级网络工程师学习笔记(知识点汇总)普通版
  18. 误差平方和用python,残差平方和sklearn.linear_模型线性回归
  19. 获取颜色值 抓取颜色值 获取颜色代码RGB
  20. hdoj-2036题解-向量积法求任意多边形面积

热门文章

  1. python使用Qt实现GUI编程
  2. 2021OPPO开发者大会召开 中手游获颁双料大奖
  3. 全国职业院校技能大赛 网络建设与运维 赛题(八)
  4. word之去掉目录前的黑点
  5. SHELL的一些实例
  6. 全国医院查询 api数据接口
  7. 使用java做mysql数据迁移时遇到的两个问题
  8. 无刷电机控制(1) 霍尔传感器
  9. Skin Lesion Classification Using Ensembles of Multi-Resolution EfficientNets with Meta Data
  10. Linux系统查看CPU使用率、内存使用率、磁盘使用率