`
jackroomage
  • 浏览: 1214940 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

自己总结的-------工厂模式

阅读更多

1、下面的代码是可以运行的。

 

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 Factory{
 public static Fruit getFruitInstance(String type){
  
  Fruit f=null;
                 try{
  f=(Fruit) Class.forName(type).newInstance();
                }catch(Exception e){
                       System.out.println(e);
                }
  return f;
 }
}
// 定义一个新类,此类可以从键盘输入数据
class  Tio{
BufferedReader bf=null;
   public Tio(){
   bf=new BufferedReader(new InputStreamReader(System.in));
   }
  public String getin(){
         String str=null;
             try{
                 str=bf.readLine();
     }catch(Exception e){
          System.out.println(e);
          }
        return str;
   }
}
//读文件的类
class Init{
      public  static  Properties getInitStance()throws Exception{
            Properties ps=new Properties();
            ps.loadFromXML(new FileInputStream(new File("jack.xml")));//jack.xml是个绝对路径,可以任意写。
            return ps;
    }

}

public class TestFactory {
 public static void main(String[] args)throws Exception{
                Properties  ps=new  Properties();
         ps=Init.getInitStance();
                System.out.println(ps);
                 // 加入一个可以从键盘输入数据的类
                System.out.println("输入你想要的代号:");

                String code=new Tio().getin();
               
  Fruit fru=Factory.getFruitInstance(ps.getProperty(code));
                  if(fru!=null){
  fru.grow();
  fru.pick();
             }else {
                  System.out.println("没有发现这个类!");
           }
 }

}

2、下面是配置文件,配置文件的目的是,可以动态的修改(添加子类等等),上面的类可以直接读文件,就可以了。

 

import java.util.*;
import java.io.*;
public class DemoXML{
       public static void main(String[] args)throws Exception{
                Properties  ps=new  Properties();
               //下面是生成文件
                /*
         ps.setProperty("a","Apple");//这里的Apple是类,要是有包的话要写成:包名+类名。
                ps.setProperty("o","Orange");
                ps.setProperty("c","Cherry");
               // 下面的两个写法都可以生成jack.xml文件
               //  ps.storeToXML(new FileOutputStream("jack.xml"), "要生成的文件!") ;
                ps.storeToXML(new FileOutputStream(new File("jack.xml")), "要生成的文件!") ;
                 */
                 //下面是读文件。
                 ps.loadFromXML(new FileInputStream(new File("jack.xml")));
          System.out.println(ps) ;
   }
}

 

 

分享到:
评论

相关推荐

    java设计模式-工厂模式

    Java设计模式中的工厂模式是一种创建型...总结来说,工厂模式是Java设计模式中的重要一环,它有效地解决了对象创建的问题,提高了代码的可维护性和可扩展性。理解并熟练运用工厂模式,对于提升软件设计质量至关重要。

    设计模式源代码--工厂模式与单例

    本资源主要关注两种经典的设计模式:工厂模式和单例模式。这两种模式在实际编程中非常常见,尤其对于提高代码的可扩展性和可维护性至关重要。 ### 工厂模式 工厂模式是一种创建型设计模式,它提供了一种创建对象的...

    抽象工厂模式--演示代码

    总结来说,"JAVA抽象工厂模式--演示代码"将展示如何在Java中应用这一模式,通过创建和使用抽象工厂,来实现对象族的动态创建,同时保持代码的松耦合和可扩展性。测试用例则会验证这些功能是否按照预期工作。

    设计模式实验报告-工厂模式.docx

    ### 设计模式实验报告——工厂模式 #### 一、引言 工厂模式是软件工程中常用的创建型设计模式之一,其主要目的是为了封装创建过程,将创建对象的任务交给专门的工厂类来完成。本报告主要介绍了三种不同类型的工厂...

    工厂模式-反射模式-登陆-查询-实例-简单分页

    总结来说,这个项目可能包含以下关键知识点:使用工厂模式创建对象,利用反射动态执行代码,实现安全的登录功能,进行高效的查询操作,以及应用简单分页以优化性能。同时,通过三层架构来组织代码,确保了良好的可...

    java抽象工厂模式实例----手机工厂

    总结一下,抽象工厂模式在Java中的应用可以帮助我们: 1. 分离产品对象的创建与使用,提高代码的可读性和可维护性。 2. 支持产品族的创建,允许扩展新的产品类别。 3. 提供一套标准的接口,使得客户端可以独立于...

    设计模式_--_工厂模式和单件模式

    ### 设计模式——工厂模式与单例模式 #### 一、引言 设计模式是软件工程领域中的一个重要概念,它代表了在特定情况下解决常见问题的最佳实践。在本篇文章中,我们将深入探讨两种广泛使用的软件设计模式:工厂模式...

    设计模式-工厂模式.pdf

    总结而言,工厂模式是一种非常实用的设计模式,尤其适合于需要动态选择不同实现的情况。简单工厂模式适合于产品种类不多且未来扩展可能性较小的场景;而工厂方法模式则更适合于需要支持多种不同类型产品的复杂应用...

    优秀的设计模式示例-工厂模式

    工厂模式是设计模式中的一种,属于创建型模式,它提供了一种封装对象创建过程的方法,使得创建对象的过程与使用对象的代码分离,从而提高了代码的灵活性和可扩展性。 工厂模式的核心思想是通过一个工厂类来负责创建...

    北风网-设计模式-简单工厂模式ppt

    在这个"北风网-设计模式-简单工厂模式ppt"中,可能包含了以下内容: 1. **模式定义**:简单工厂模式的核心概念,解释其工作原理和适用场景。 2. **角色介绍**:包括产品接口(Product)或抽象类,具体产品类...

    OC-工厂模式-处理不同通知

    工厂模式是设计模式中的一种,它在软件工程中扮演着重要的角色,特别是在处理不同类的实例化时。本篇我们将深入探讨OC中的工厂模式及其在处理不同通知时的应用。 ### 1. 工厂模式简介 工厂模式是一种创建型设计模式...

    工厂模式-简单工厂(设计模式的入门级模式)

    【工厂模式】是一种创建型...总结来说,简单工厂模式是设计模式中的基础,它通过提供一个中心化的创建对象的机制,使得代码更加灵活,易于扩展。对于初学者来说,理解并掌握这一模式是深入学习其他设计模式的重要步骤。

    面试题总结---javaSE--适用于初学者

    - **工厂模式**:提供创建对象的接口,隔离对象的创建和使用。 - **装饰器模式**:动态地给一个对象添加新的行为或责任。 9. **垃圾回收(GC)** - **内存区域划分**:堆、栈、方法区、本地方法栈等。 - **垃圾...

    设计模式概述,讲述什么是设计模式的ppt - 简单工厂模式

    ### 设计模式概述——简单工厂模式详解 #### 一、设计模式概览 设计模式是在软件工程领域中,为了解决特定问题而总结出来的一系列经验法则和最佳实践。通过运用设计模式,开发者可以在面对常见问题时,快速找到...

    04-工厂模式.pdf

    ### 工厂模式详解 #### 一、工厂模式概述 工厂模式是一种常用的设计模式,它属于创建型模式的一种。在软件工程中,工厂模式的主要目的是封装对象的创建过程,并允许根据不同的条件创建不同类型的对象。这有助于...

    Java设计模式----通俗易懂版

    - 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,无需指定它们的具体类。 - 建造者模式:将复杂对象的构建与其表示分离,使同样的构建过程能创建不同的表示。 - 原型模式:通过复制已有对象来创建...

    java 设计模式-个人总结

    下面给出了简单的工厂模式和工厂方法模式的示例代码: ```java // 定义水果接口 public interface Fruit { void get(); } // 苹果实现类 public class Apple implements Fruit { public void get() { System....

    java---------设计模式

    - 抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而无需指定具体类。 - 建造者模式:将复杂对象的构建与其表示分离,使得相同的构建过程可以创建不同的表示。 - 组合模式:允许你将对象组合成树形...

Global site tag (gtag.js) - Google Analytics