Java工厂设计模式
程序在接口和子类之间加入一个过渡类,通过此过渡类端取得接口的实例化对象,一般都会称这个过渡端为工厂类
//=================================================
// File Name : factory
//------------------------------------------------------------------------------
// Author : Common // 接口名:Fruit
// 属性:
// 方法:
interface Fruit{
public void eat();
} //类名:Apple
//属性:
//方法:
class Apple implements Fruit{ @Override
public void eat() {
// TODO 自动生成的方法存根
System.out.println("eat apple!");
} } //类名:Orange
//属性:
//方法:
class Orange implements Fruit{ @Override
public void eat() {
// TODO 自动生成的方法存根
System.out.println("eat orange!");
} } //类名:Factory
//属性:
//方法:
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; }
} //主类
//Function : 工厂设计模式
public class factory { public static void main(String[] args) {
// TODO 自动生成的方法存根
Fruit f = null; //定义接口对象
f = Factory.getInstance("apple"); //通过工厂取得实例
f.eat(); //调用方法
} }

//=================================================
// File Name : factory
//------------------------------------------------------------------------------
// Author : Common // 接口名:Fruit
// 属性:
// 方法:
interface Fruit{
public void eat();
} //类名:Apple
//属性:
//方法:
class Apple implements Fruit{ @Override
public void eat() {
// TODO 自动生成的方法存根
System.out.println("eat apple!");
} } //类名:Orange
//属性:
//方法:
class Orange implements Fruit{ @Override
public void eat() {
// TODO 自动生成的方法存根
System.out.println("eat orange!");
} } //类名:Factory
//属性:
//方法:
class Factory{ //定义工厂类
public static Fruit getInstance(String className){
Fruit f = null; //定义接口对象
try{
f = (Fruit)Class.forName(className).newInstance(); //实例化对象
}catch(Exception e){
e.printStackTrace();
}
return f; }
} //主类
//Function : 工厂设计模式
public class factory { public static void main(String[] args) {
// TODO 自动生成的方法存根
Fruit f = null; //定义接口对象
f = Factory.getInstance("Apple"); //通过工厂取得实例
f.eat(); //调用方法
} }
结合属性文件的工厂模式


Java工厂设计模式的更多相关文章
- java工厂设计模式初步
没有利用反射机制定义的简单工厂类 interface Fruit{ public void eat(); } class Apple implements Fruit{ public void eat ...
- Java EE设计模式(主要简单介绍工厂模式,适配器模式和模板方法模式)
Java EE设计模式分为三种类型,共23种: 创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模式.原型模式. 结构型模式:适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代理模式 ...
- 利用Java反射机制优化简单工厂设计模式
之前项目有个需求,审批流程的时候要根据配置发送信息:发送短信.发送邮件.当时看到这个就想到要用工厂模式,为什么要用工厂模式呢?用工厂模式进行大型项目的开发,可以很好的进行项目并行开发.就是一个程序员和 ...
- java简单工厂设计模式
一.基本定义 /* *简单工厂设计模式: *文字描述理解: * 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式. * 通过专门定义一个类来负责创建其它类的实例,被创建的实例通常 * 都具有共同 ...
- Java设计模式—工厂设计模式
工厂设计模式(减少耦合.通过接口或者工厂类来实现) 耦合性:粘度强(依耐性) Person p = new Person(); //耦合性强 Man p = new Per ...
- Java反射机制(五):使用反射增强简单工厂设计模式
关于简单工厂设计模式的讲解,可参考博文<设计模式: 简单工厂模式>,此处不再介绍: 我们先观察之前介绍的关于简单工厂: public class OperateFactory { pub ...
- 工厂设计模式灵魂拷问-Java实现
show me the code and take to me,做的出来更要说的明白 GitHub项目JavaHouse同步收录 喜欢就点个赞呗! 你的支持是我分享的动力! 引入 我们经常听到工厂模式 ...
- dom4j解析器 基于dom4j的xpath技术 简单工厂设计模式 分层结构设计思想 SAX解析器 DOM编程
*1 dom4j解析器 1)CRUD的含义:CreateReadUpdateDelete增删查改 2)XML解析器有二类,分别是DOM和SAX(simple Api for xml). ...
- 单例模式——Java EE设计模式解析与应用
单例模式 目录: 一.何为单例 二.使用Java EE实现单例模式 三.使用场景 一.何为单例 确保一个类只有一个实例,并且提供了实例的一个全局访问点 1.1 单例模式类图 ...
随机推荐
- Asp.Net Form验证不通过,重复登录
问题产生根源: 当然,其实应该需要保持线上所有机器环境一致!可是,写了一个小程序.使用的是4.5,aysnc/await实在太好用了,真心不想把代码修改回去. so,动了念头,在这台服务器上装个4.5 ...
- vmware 在NAT模式下连接上外网
文章: http://www.2cto.com/os/201504/389011.html
- Laplacian算子
多元函数的二阶导数又称为Laplacian算子: \[ \triangledown f(x, y) = \frac {\partial^2 f}{\partial x^2} + \frac {\par ...
- maven-腾讯SDK(QQ)接口java引入pom配置
maven的pom.xml配置 <dependency> <groupId>net.gplatform</groupId> <artifactId>Sd ...
- SELinux关闭和开启
检测Selinux状态 ./usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 SELinux status: enabled .geten ...
- 操作系统也谈"算法"
前言: 近来在准备校招的笔试面试,复习到操作系统时感觉概念性的东西比较多,不过对于以下的几类算法还是有必要做个小小总结. [作业调度算法] 先来先服务(FCFS, First Come First S ...
- Thinking in java学习笔记之垃圾回收器如何工作
垃圾回收器使得java在堆上分配空间的速度可以和其他语言从堆栈上分配空间的速度媲美.
- AFnetworking3.1的基本使用
听说之后AFHttpWorking版本可能会影响到苹果的审核,今天下了最新版本的AFHttpWorking,并且做了简单的封装,我这里是通过cocoapods下载了两个工具 1=AFHttpWorki ...
- xml序列化方式
public static class MySerializeXmlHelper { static MySerializeXmlHelper() { } private static object _ ...
- 转发;Dota英文名
http://esports.17173.com/content/2011-02-17/20110217163225753.shtml 有的英雄的名字真的很漂亮,也给那些学校里英文各种悲剧的同鞋增加点 ...