java工厂设计模式小例子
2014-05-15 07:25
211 查看
工厂设计模式模版:
//抽象产品类
public abstract class Product{
//产品类的公共方法
public void method1(){
//业务逻辑处理
}
//抽象方法
public abstract void method2();
}
//两个具体的产品类ConcretProduct1, ConcretProduct2
public class ConcretProduct1 extends Product{
public abstract void method2(){
//业务逻辑处理
}
}
public class ConcretProduct2 extends Product{
public abstract void method2(){
//业务逻辑处理
}
}
//抽象工厂类
public abstract class Creator{
/*
*创建一个产品对象,其输入参数类型可以自行设置
*通常为String、Enum、Class,当然也可以为空
*/
public abstract <T extends Product> T createProduct(Class<T> c);
}
//具体的工厂类
public class ConcreteCreator extens Creator{
/*
*创建一个产品对象,其输入参数类型可以自行设置
*通常为String、Enum、Class,当然也可以为空
*/
public <T extends Product> T createProduct(Class<T> c){
Product product = null;
try{
product = (Product)Class.forName(c.getName()).newInstance();
}catch(Exception e){
//异常处理
}
return (T)product;
}
}
下面是一段工厂设计模式的demo,代码来自李兴华老师的Java开发实战经典603页
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 fruit = null;
try{
fruit = (Fruit)Class.forName(className).newInstance();
}catch(Exception e){
e.printStackTrace();
}
return fruit;
}
}
public class FactoryDemo{
public static void main(String[] args){
Fruit fruit = Factory.getInstance("Apple");
if(fruit != null){
fruit.eat();
}
}
}
//抽象产品类
public abstract class Product{
//产品类的公共方法
public void method1(){
//业务逻辑处理
}
//抽象方法
public abstract void method2();
}
//两个具体的产品类ConcretProduct1, ConcretProduct2
public class ConcretProduct1 extends Product{
public abstract void method2(){
//业务逻辑处理
}
}
public class ConcretProduct2 extends Product{
public abstract void method2(){
//业务逻辑处理
}
}
//抽象工厂类
public abstract class Creator{
/*
*创建一个产品对象,其输入参数类型可以自行设置
*通常为String、Enum、Class,当然也可以为空
*/
public abstract <T extends Product> T createProduct(Class<T> c);
}
//具体的工厂类
public class ConcreteCreator extens Creator{
/*
*创建一个产品对象,其输入参数类型可以自行设置
*通常为String、Enum、Class,当然也可以为空
*/
public <T extends Product> T createProduct(Class<T> c){
Product product = null;
try{
product = (Product)Class.forName(c.getName()).newInstance();
}catch(Exception e){
//异常处理
}
return (T)product;
}
}
下面是一段工厂设计模式的demo,代码来自李兴华老师的Java开发实战经典603页
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 fruit = null;
try{
fruit = (Fruit)Class.forName(className).newInstance();
}catch(Exception e){
e.printStackTrace();
}
return fruit;
}
}
public class FactoryDemo{
public static void main(String[] args){
Fruit fruit = Factory.getInstance("Apple");
if(fruit != null){
fruit.eat();
}
}
}
相关文章推荐
- java中的设计模式 工厂 和抽象工厂模式 的例子
- Java设计模式圣经连载(02)-工厂方法(Factory Method)模式
- [原创]一个简单例子解释 Java 工厂模式
- 设计模式之一:Java中的简单工厂模式
- java设计模式之一 工厂模式
- Java的工厂模式例子
- 设计模式之Factory,Java工厂方法
- [零基础学JAVA]Java SE应用部分-36.反射机制与工厂设计模式 推荐
- java设计模式之工厂模式(Factory)
- 几种常见设计模式的JAVA实现例子
- Java工厂设计模式论文
- Java 可复用的面向对象的设计模式之 工厂模式Factory详解 :简单工厂模式 工厂方法模式 抽象工厂模式
- JAVA设计模式之-工厂模式
- java 简单工厂设计模式
- JAVA设计模式——简单工厂(Simple Factory)模式
- Java设计模式之工厂模式篇
- JAVA设计模式学习之----创建模式:工厂模式(抽象工厂)
- 追MM与设计模式的JAVA实现-简单工厂方法
- Java设计模式之二 —— 工厂方法
- java设计模式_代理模式_动态代理(带例子)