- 浏览: 55460 次
- 性别:
- 来自: 上海
最新评论
package org.lxh.demo ;
import java.io.* ;
import java.util.* ;
interface Fruit
{
// 生长
public void grow() ;
// 采摘
public void pick() ;
}
class Apple implements Fruit
{
public void grow()
{
System.out.println("苹果在生长。。。 ") ;
}
public void pick()
{
System.out.println("摘苹果。。。") ;
}
};
class Orange implements Fruit
{
public void grow()
{
System.out.println("橘子在生长。。。 ") ;
}
public void pick()
{
System.out.println("摘橘子。。。") ;
}
};
class Cherry implements Fruit
{
public void grow()
{
System.out.println("樱桃在生长。。。 ") ;
}
public void pick()
{
System.out.println("摘樱桃。。。") ;
}
};
class WaterMelon implements Fruit
{
public void grow()
{
System.out.println("西瓜在生长。。。") ;
}
public void pick()
{
System.out.println("摘西瓜。。。") ;
}
};
class Banana implements Fruit
{
public void grow()
{
System.out.println("香蕉在生长。。。 ") ;
}
public void pick()
{
System.out.println("摘香蕉。。。") ;
}
};
class DD implements Fruit
{
public void grow()
{
System.out.println("DD。。。 ") ;
}
public void pick()
{
System.out.println("摘DD。。。") ;
}
};
class Factory
{
public static Fruit getFruitInstance(String type)
{
Fruit f = null ;
// 通过Class类完成
try
{
f = (Fruit)Class.forName(type).newInstance() ;
}
catch (Exception e)
{
System.out.println(e) ;
}
return f ;
}
};
// 定义一个新类,此类可以从键盘输入数据
class InputData
{
BufferedReader buf = null ;
public InputData()
{
buf = new BufferedReader(new InputStreamReader(System.in)) ;
}
public String getString()
{
String str = null ;
try
{
str = buf.readLine() ;
}
catch (Exception e)
{
}
return str ;
}
};
class Init
{
public static Properties getPropertiesInit()
{
Properties p = new Properties() ;
try
{
p.loadFromXML(new FileInputStream("lxh.xml")) ;
}
catch (Exception e)
{
}
return p ;
}
};
public class FactoryDemo06
{
public static void main(String args[])
{
Properties p = new Properties() ;
p = Init.getPropertiesInit() ;
System.out.println(p) ;
// 加入一个可以从键盘输入数据的类
System.out.print("输入要使用的子类代码:") ;
String code = new InputData().getString() ;
System.out.println(p.getProperty(code)) ;
Fruit f = Factory.getFruitInstance(p.getProperty(code)) ;
if(f!=null)
{
f.grow() ;
f.pick() ;
}
else
{
System.out.println("没有发现这个类型。") ;
}
}
};
lxh.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>MLDN --> LXH</comment>
<entry key="b">org.lxh.demo.Banana</entry>
<entry key="a">org.lxh.demo.Apple</entry>
<entry key="o">org.lxh.demo.Orange</entry>
<entry key="c">org.lxh.demo.Cherry</entry>
<entry key="d">org.lxh.demo.DD</entry>
</properties>
发表评论
-
ddddddddddddddd
2009-04-07 22:56 0dddddddddddddd -
笔记**************
2007-10-31 21:26 1332环境变量C:\jdk1.5.0_04 JDK安装路径 JA ... -
thinkinjava一系列项目
2007-08-15 13:26 1160本章包含了一系列项目 ... -
附录C Java编程规则
2007-08-15 13:25 997本附录包含了大量有用 ... -
附录A 使用非JAVA代码
2007-08-15 13:24 1327附录A 使用非JAVA代码 JA ... -
对比C++和Java
2007-08-15 13:20 948附录B 对比C++和Java “作为一名C++程序员,我们早 ... -
JSP笔记
2007-08-08 18:16 2135Tomcat下建立虚拟目录 例: 建立目录 d ... -
JSP & Servlet解惑^_^
2007-08-07 19:03 1578钻进去几天,虽然网上找过问题的答案,但到现在看到Marty ... -
java笔记十
2007-08-03 21:03 725java 代码 pa ... -
java笔记九
2007-08-02 12:45 1002java 代码 /* AWT(A ... -
java笔记八
2007-08-01 19:02 973对象序列化 将对象转换为字节流保存起来,并在日后还原这个对象, ... -
java笔记七
2007-08-01 16:16 1084java 代码 /*RandomAcce ... -
java笔记六
2007-07-31 19:07 920流(Stream)是字节的源或目的。 两种基本的流是:输入流( ... -
java笔记五
2007-07-31 08:52 846ArrayList和LinkedList的比较 ArrayLi ... -
java笔记四
2007-07-31 08:51 949程序是计算机指令的集合,它以文件的形式存储在磁盘上。 进程:是 ... -
java笔记三
2007-07-28 18:27 888java 代码 /*java迭代器Iterat ... -
eclipse快捷键
2007-07-28 13:07 820本文档从Eclipse软件上整 ... -
java笔记二
2007-07-28 13:06 825java 代码 //*孙鑫教程笔记。接口中run ... -
java笔记一
2007-07-27 17:15 841java 代码 //: notes about ... -
在eclipse + MyEclipse+tomcat下配置建立J2EE工程环境
2007-07-26 19:13 4392在eclipse + MyEclipse+tomcat下配置 ...
相关推荐
5. Qt工厂模式例子 6. 简单工厂模式 部分源码实例: // 奔驰工厂 class BenzFactory : public AFactory { public: ICar* CreateCar() { return new BenzCar(); } }; // 宝马工厂 class BmwFactory : public A...
这里的"经典实战案例"很可能是指工厂方法模式,它比简单工厂模式更加灵活,允许子类决定实例化哪一个产品类。工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类的实例化推迟到...
结合提供的压缩包文件"FactoryDesign",我们可以期待这个案例会详细解释如何在三层架构中运用工厂模式来设计和实现业务逻辑。这可能包括创建一个工厂类,用于根据特定条件(如用户请求)生成相应的业务对象,以及...
在这个"工厂模式(2016手机案例)"中,我们将探讨如何运用工厂模式来模拟2016年手机产品的生产过程,以及当年手机的一些主要特性。 首先,工厂模式的核心思想是通过一个共同的接口或抽象类来创建不同的产品实例。在...
java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。...
在软件工程中,设计模式是解决常见问题的模板或最佳实践。工厂模式是其中最常用的一种,它提供了创建对象的最佳方式。在这个压缩包中,包含了三种工厂模式的C++实现:简单工厂模式、工厂方法模式以及抽象工厂模式。...
在软件设计模式中,工厂模式是一种非常基础且实用的创建型模式,它的主要目标是将对象的创建过程封装起来,使得代码更加灵活,同时也降低了对象间的耦合度。工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和...
在给定的资源中,"设计模式交流之工厂模式-shannonxu-2014-10-24.pptx"可能是详细的PPT讲解,涵盖了这些模式的概念、结构、优缺点以及实际应用案例。而"Factory"可能是一个代码示例,展示了工厂模式的具体实现,包括...
这里我们主要探讨基于Java的例子,即简单工厂模式。 简单工厂模式的核心思想是定义一个工厂类,这个类负责创建对象,而客户端代码不再直接创建对象,而是调用工厂类的静态方法来获取所需对象。这样做可以隔离类的...
在给定的"Java 简单工厂模式例子"中,可能包含如下代码结构: ```java // Product(产品)接口或抽象类 public interface Computer { void start(); } // ConcreteProduct(具体产品)类 public class Laptop ...
在这个"工厂模式例子java代码"中,我们可以预见到它会展示如何在Java编程语言中实现工厂模式。Java作为面向对象的语言,非常适合用来演示这种模式。下面我们将深入探讨工厂模式的几个核心概念和组成部分: 1. **...
简单工厂模式是软件设计模式中的一种创建型模式,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个工厂类负责创建所有相关的对象,而客户端只需要知道具体的产品类型,无需了解如何创建这些对象的细节。这种...
工厂模式是一种常用的设计模式,它在软件开发中起到了抽象创建对象过程的作用,使得代码更加灵活,易于扩展...对于想要学习设计模式的开发者来说,这是一个很好的实践案例,能够帮助理解如何在实际项目中应用工厂模式。
本篇文章将深入探讨几个Java设计模式的经典例子,包括它们的原理、应用场景以及如何在实际项目中实施。 1. 单例模式:单例模式确保一个类只有一个实例,并提供全局访问点。在Java中,通常通过双重检查锁定(Double-...
通过学习这两个案例,你可以深入理解如何在实际项目中运用工厂方法模式,以及它如何帮助你更好地组织代码,提高软件设计的质量。此外,还可以结合其他设计模式,如策略模式、单例模式等,进行组合使用,以应对更复杂...
在这个例子中,`Animal`是产品接口,`Dog`和`Cat`是具体产品,而`AnimalFactory`是工厂类。客户端代码可以通过调用`AnimalFactory::createAnimal()`方法来获取所需的动物对象,而无需关心对象的创建细节。 ### 4. ...
本篇文章将深入探讨几种经典的设计模式:模板方法模式、外观模式、代理模式、装饰器模式、桥模式、工厂方法模式以及组合模式。 首先,模板方法模式(Template Method Pattern)是行为设计模式的一种,它定义了操作...
在这个"java23种设计模式经典案例"中,我们将深入探讨这些模式的细节及其在实际项目中的应用。 1. 创建型模式(Creational Patterns): - 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点...
本文将探讨三个重要的设计模式:抽象工厂模式、工厂方法模式以及策略模式,并结合一个实际的场景——手机加工厂,来具体阐述它们的应用。 首先,我们来看**抽象工厂模式**。这个模式主要用于创建相关或依赖对象的...
以下是关于JAVA设计模式中提及的四种模式——工厂模式、代理模式、迭代器模式以及责任链模式的详细说明。 1. **工厂模式**:工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当创建...