`
jackroomage
  • 浏览: 1199706 次
  • 性别: 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) ;
   }
}

 

 

分享到:
评论

相关推荐

    简单工厂-工厂方法-抽象工厂 对比总结

    4.简单工厂-工厂方法-抽象工厂 对比总结

    java设计模式-工厂模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中...这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    工厂设计模式总结

    详细但要工厂设计模式,并与仓储模式对比,分析其适用场合,非常适合学习,对初学者帮助很大

    设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式

    设计模式之我见(1):设计模式概述 (100%) 设计模式面面观(2):设计模式基本要素与原则 (100%) 设计模式面面观(3):单件模式(Singletion)-创建型模式 (100%) 设计模式面面观(4):工厂模式...

    设计模式--C++

    3.2 Builder(生成器)—对象创建型模式 633.3 Factory Method(工厂方法)—对象创建型模式 70 3.4 Prototype(原型)—对象创建型模式 87 3.5 Singleton(单件)—对象创建型模式 84 3.6 创建型模式的讨论 89 第 4...

    设计模式自己总结一句话描述

    创建型模式,共五种: 工厂方法模式、抽象工厂模式、单例模式、构建者模式、原型模式。 结构型模式,共七种: 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种...

    简单工厂模式、工厂模式、抽象工厂模式介绍

    简单工厂模式、工厂模式、抽象工厂模式 总结介绍

    设计模式解析-英文

    各种工厂模式 242 第21章 Singleton模式和Double-Checked Locking模式 249 第22章 Object Pool模式 257 第23章 Factory Method模式 267 第24章 工厂模式的总结 272 第八部分 终点与起点 第25章 设计模式回顾:总结与...

    简单工厂设计模式

    Java 设计模式 总结了经典设计模式之一的简单工厂设计模式,内涵类图,UML介绍.

    java中的设计模式,主要的设计模式

    单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式 适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式观察者模式、策略模式、模板模式、责任链模式、解析器模式、迭代子模式 ...

    工厂模式代码

    简单工厂模式,工厂方法模式,运用反射实现工厂模式

    设计模式之工厂模式总结

    设计模式之工厂模式 什么是工厂模式? 工厂模式是一种常见的设计模式,将我们创建对象的行为封装(因为创建对象的行为往往是重复的)然后直接调用工厂所给出的方法创建对象即可。 工厂模式有三种: 1. 简单工厂模式...

    设计模式:可复用面向对象软件的基础--详细书签版

     本书结合设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别...

    《软件秘笈:设计模式那点事》郑阿奇(编者) -电子工业出版社

    3.3.3 抽象工厂模式的静态建模 3.4 故事的抽象工厂模式实现 3.4.1 抽象食物的建立 3.4.2 建立不同食物的抽象基类 3.4.3 创建具体的食物 3.4.4 建立工厂 3.4.5 创建客户类 3.4.6 故事情节的展现 3.5 设计原则...

    lua设计模式总结

    1、简单工厂模式lua实现 2、工厂方法模式lua实现 3、原型模式lua实现 4、建造者模式lua实现 5、单例模式lua实现 6、抽象工厂模式lua实现 结构型模式 1、装饰模式lua实现 2、代理模式lua实现 3、外观模式lua实现 4、...

    OBJECTIVE-C编程之道 IOS设计模式解析电子书+源代码

    抽象工厂5.1 把抽象工厂应用到TouchPainter应用程序5.2 在Cocoa Touch框架中使用抽象工厂5.3 总结第6章 生成器6.1 何为生成器模式6.2 何时使用生成器模式6.3 构建追逐游戏中的角色6.4 总结第7章 单例7.1 何为单例...

    PHP设计模式之工厂模式实例总结

    主要介绍了PHP设计模式之工厂模式,简单介绍了工厂模式的概念、原理并结合实例形式总结分析了工厂模式的具体定义及使用方法,需要的朋友可以参考下

    精品源码 C# 27种设计模式源代码

    4 抽象工厂模式 4 代理模式 4 命令模式 5 迭代器模式 5 适配器模式 5 原型模式 6 简单工厂模式 6 解释器模式 6 享元模式 7 桥接模式 7 状态模式 8 结构型模式总结 8 责任链模式 9 创建型模式总结 9 中介者模式 10 ...

    abstract-factory-pattern

    Java抽象工厂模式:解锁代码复用的新境界 在编程世界中,设计模式是一组被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它们能够帮助我们更好地组织代码,提高代码的可重用性、可维护性和可扩展性...

Global site tag (gtag.js) - Google Analytics