java工厂模式java中的工厂模式是什么,请举例说明

java工厂模式  时间:2021-09-04  阅读:()

在JAVA中,通常在什么情况下用到工厂模式??

工厂模式负责将大量有共同接口的类实例化。

工厂模式可以决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。

工厂模式的几种形态: l 简单工厂模式。

又称静态工厂模式。

l 工厂方法模式。

Factory Method,又称多态工厂或虚拟构造子模式(Virtual Constructor)。

l 抽象工厂模式。

Abstract Factory,又称工具箱(Kit或ToolKit)模式。

工厂模式的逐步递演反映了抽象的步步加深、解决问题

j2ee有哪些设计模式?什么叫工厂模式。

Java中的23种设计模式: Factory(工厂模式),Builder(建造模式),FactoryMethod(工厂方法模式), Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式), Adapter(适配器模式),Bridge(桥梁模式),Composite(合成模式), Decorator(装饰模式),Flyweight(享元模式),Proxy(代理模式), Command(命令模式),Interpreter(解释器模式),Visitor(访问者模式), Iterator(迭代子模式),Mediator(调停者模式),Memento(备忘录模式), Observer(观察者模式),State(状态模式),Strategy(策略模式), TemplateMethod(模板方法模式),ChainOfResponsibleity(责任链模式) 工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。

首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。

然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。

当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

java中的工厂模式是什么,请举例说明

工厂模式就是在接口和子类之间加入了一个过渡端,通过此过渡端获得接口的实例化对象,这个过渡端也就是所谓的工厂类。

这样以后如果再有程序子类要扩充,直接修改工厂类客户端就可以根据标记得到相应的实例,增加了程序的灵活性。

eg: interface Fruit{ public void eat() ; } class Apple implements Fruit{ public void eat(){ System.out.println("** $$$$$") ; } }; class Orange implements Fruit{ public void eat(){ System.out.println("** #####。

") ; } }; class Factory{ // 定义工厂类 public static Fruit getInstance(String className){ Fruit f = null ; if("apple".equals(className)){ // 判断 f = new Apple() ; } if("orange".equals(className)){ // 判断 f = new Orange() ; } return f ; } }; public class InterfaceCaseDemo{ public static void main(String args[]){ Fruit f = Factory.getInstance(null) ; // 实例化接口 f.eat() ; } };

#推荐# cmivps:全场7折,香港不限流量VPS,支持Windows系统

cmivps香港VPS带来了3个新消息:(1)双向流量改为单向流量,相当于流量间接扩大一倍;(2)Hong Kong 2T、Hong Kong 3T、Hong Kong 无限流量,这三款VPS开始支持Windows系统,如果需要中文版Windows系统请下单付款完成之后发ticket要求官方更改即可;(3)全场7折年付、8折月付优惠,优惠码有效期一个月!官方网站:https://www.cmivp...

云基Yunbase无视CC攻击(最高500G DDoS防御),美国洛杉矶CN2-GIA高防独立服务器,

云基yunbase怎么样?云基成立于2020年,目前主要提供高防海内外独立服务器,欢迎各类追求稳定和高防优质线路的用户。业务可选:洛杉矶CN2-GIA+高防(默认500G高防)、洛杉矶CN2-GIA(默认带50Gbps防御)、香港CN2-GIA高防(双向CN2GIA专线,突发带宽支持,15G-20G DDoS防御,无视CC)。目前,美国洛杉矶CN2-GIA高防独立服务器,8核16G,最高500G ...

onevps:新增(支付宝+中文网站),香港/新加坡/日本等9机房,1Gbps带宽,不限流量,仅需$4/月

onevps最新消息,为了更好服务中国区用户:1、网站支付方式新增了支付宝,即将增加微信;原信用卡、PayPal方式不变;(2)可以切换简体中文版网站,在网站顶部右上角找到那个米字旗,下拉可以换中国简体版本。VPS可选机房有:中国(香港)、新加坡、日本(东京)、美国(纽约、洛杉矶)、英国(伦敦)、荷兰(阿姆斯特丹)、瑞士(苏黎世)、德国(法兰克福)、澳大利亚(悉尼)。不管你的客户在亚太区域、美洲区...

java工厂模式为你推荐
expireredis expire 命令有什么好处xhtml请问XHTML是什么东西?一般在什么情况下使用的?fast路由器如何设置fast路由器用户名和密码swift语言swift语言坑死ios开发者,这样怎么说呢?有基础入门课程推荐吗?支付宝账单查询支付宝电子账单怎么查询小项目如何搞小工程招行信用卡还款招商银行信用卡有哪几个还款方式呢?t320平板电脑三星 galaxy tab pro t320怎么样工作经验介绍个人简历中的服务员工作经验怎么写比较好sg什么意思sg,gm到底是什麽意思?
虚拟主机mysql 域名升级访问中 深圳域名空间 免费试用vps 贝锐花生壳域名 优key 表格样式 seovip 长沙服务器 java空间 个人免费空间 福建天翼加速 699美元 阿里校园 qq对话框 国外视频网站有哪些 新加坡空间 阿里云邮箱登陆 域名和主机 godaddyssl 更多