Java(基础)工厂方法(FactoryMethod)
概述:
定义一个用于创建对象的接口,让子类决定实例化哪一个类,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)相关推荐
- Java 的工厂方法及代理模式
Java 的工厂方法及代理模式 工厂方法(FactoryMethod) 概述:定义一个用于创建对象的接口,让子类决定实例化哪一个类.FactoryMethod使一个类的实例化延迟到其子类. 适用性: ...
- Java基础学习——方法
Java基础学习--方法 前言 本文将介绍有关Java面向对象编程的知识之一:方法:其中包括方法的概念,三类方法的格式.方法的重载以及方法的内存 方法的概念 方法是程序中最小的执行单元 方法定义:将一 ...
- Java 静态工厂方法详解
Java 静态工厂方法详解 本文章主要是对<Effective Java>对静态工厂方法的理解 第一次使用静态工厂方法是在HIT<Software Construction>课 ...
- Java设计模式--工厂方法模式
工厂方法模式 1.工厂方法模式的概述 1.1工厂模式是简单工厂模式的延伸,符合开闭原则的基础上,还可以在增加新的具体产品对象时不需要对已有系统做任何修改. 1.2工厂方法模式:定义一个用于创建对象的接 ...
- 《转》java设计模式--工厂方法模式(Factory Method)
本文转自:http://www.cnblogs.com/archimedes/p/java-factory-method-pattern.html 工厂方法模式(别名:虚拟构造) 定义一个用于创建对象 ...
- 『创建型』简单工厂SimpleFactory、工厂方法FactoryMethod、抽象工厂AbstractFactory
为什么80%的码农都做不了架构师?>>> 几点说明 永远不要纠结于在什么时候使用什么模式 永远不要纠结于什么模式适用于什么情景 永远不要去死记任何的模式 并不是说,23种设计模 ...
- Java基础02 方法与数据成员
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在Java基础01 从HelloWorld到面向对象,我们初步了解了对象(obje ...
- Java设计模式-工厂方法模式和抽象工厂模式
工厂方法模式定义: 即定义一个创建对象的接口(即抽象工厂类),让其子类(具体工厂类)决定实例化哪一个类(具体产品类)."一对一"的关系 1,一抽象工厂类派生出多个具体工厂类: 2, ...
- JAVA设计模式 - 工厂方法模式
工厂方法模式(Factory Pattern) 是一种创建型设计模式 , 它是Java中最常用的设计模式之一 . 1 . 工厂方法模式的定义 定义一个创建对象的接口 , 让子类决定实例化哪一个类 . ...
- JAVA基础——toString()方法,java基础面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
最新文章
- python初学到底怎么学?大神三天快速学习python的方法留下的笔记
- 3分钟读懂!微服务分布式日志体系架构!
- 《算法导论》(一)--插入排序与合并排序
- 设计模式学习笔记-观察者模式(转)
- 算法--360面试:使用递归实现:a0=1,a1=1;a2=a0+a1;a3=a1+a2...以此类推,求a30
- naarray查询 swift_数据分析库之Numpy
- ITK:对多个线程上的数据进行操作以利用多核处理器
- spring 自定义日志_Spring和Hibernate的自定义审核日志
- mysql实战33 | 我查这么多数据,会不会把数据库内存打爆?
- ScrollView嵌套ViewPager,ViewPage动态设置高度,嵌套事件冲突——滑动冲突解决方法
- Python input 函数 -Python零基础入门教程
- 开源NewSQL – CockroachDB在百度内部的应用与实践
- 中俄国际社区大佬共话Java,苦Lambda表达式久矣?
- 带着canvas去流浪系列之五 绘制K线图
- Java开发人员常用网站收录
- 2. 知识图谱-命名实体识别(NER)详解
- 软考中级网络工程师学习笔记(知识点汇总)普通版
- 误差平方和用python,残差平方和sklearn.linear_模型线性回归
- 获取颜色值 抓取颜色值 获取颜色代码RGB
- hdoj-2036题解-向量积法求任意多边形面积