魚躍于淵

          First know how, Second know why !
          posts - 0, comments - 1, trackbacks - 0, articles - 49

          抽象工廠模式

          Posted on 2008-12-21 09:04 魚躍于淵 閱讀(129) 評論(0)  編輯  收藏 所屬分類: 設計模式

            1 package com.givetop.AbstractFactory;
            2 
            3 public class Factory {
            4     public static void main(String[] args){
            5         YangSheng ys = new YangSheng();
            6         Animal bull = null;
            7         bull = ys.getAnimal("Bull");
            8         bull.eat();
            9         bull.sleep();
           10     }
           11 }
           12 
           13 interface NWFactory{
           14     public Animal getAnimal(String type);
           15     public Person getPerson(String type);
           16 }
           17 
           18 class YangSheng implements NWFactory{
           19     Person man = null;
           20     Animal bull = null;
           21     public Animal getAnimal(String type){
           22         try {
           23             bull = (Bull)Class.forName("com.givetop.AbstractFactory."+type).newInstance();
           24         } catch (InstantiationException e) {
           25             e.printStackTrace();
           26         } catch (IllegalAccessException e) {
           27             e.printStackTrace();
           28         } catch (ClassNotFoundException e) {
           29             e.printStackTrace();
           30         }
           31         return bull;
           32     }
           33     public Person getPerson(String type){
           34         try {
           35             man = (Man)Class.forName("com.givetop.AbstractFactory."+type).newInstance();
           36         } catch (InstantiationException e) {
           37             e.printStackTrace();
           38         } catch (IllegalAccessException e) {
           39             e.printStackTrace();
           40         } catch (ClassNotFoundException e) {
           41             e.printStackTrace();
           42         }
           43         return man;
           44     }
           45 }
           46 
           47 class YinSheng implements NWFactory{
           48     Person woman = null;
           49     Animal cow = null;
           50     public Animal getAnimal(String type){
           51         try {
           52             cow = (Cow)Class.forName("com.givetop.AbstractFactory."+type).newInstance();
           53         } catch (InstantiationException e) {
           54             e.printStackTrace();
           55         } catch (IllegalAccessException e) {
           56             e.printStackTrace();
           57         } catch (ClassNotFoundException e) {
           58             e.printStackTrace();
           59         }
           60         return cow;
           61     }
           62     public Person getPerson(String type){
           63         try {
           64             woman = (Woman)Class.forName("com.givetop.AbstractFactory."+type).newInstance();
           65         } catch (InstantiationException e) {
           66             e.printStackTrace();
           67         } catch (IllegalAccessException e) {
           68             e.printStackTrace();
           69         } catch (ClassNotFoundException e) {
           70             e.printStackTrace();
           71         }
           72         return woman;
           73     }
           74 }
           75 
           76 interface Animal{
           77     public void eat();
           78     public void sleep();
           79 }
           80 
           81 interface Person{
           82     public void eat();
           83     public void sleep();
           84 }
           85 
           86 class Bull implements Animal{
           87     public void eat(){
           88         System.out.println("公牛開始吃東西了!");
           89     }
           90     public void sleep(){
           91         System.out.println("公牛開始睡覺了!");
           92     }
           93 }
           94 
           95 class Cow implements Animal{
           96     public void eat(){
           97         System.out.println("奶牛開始吃東西了!");
           98     }
           99     public void sleep(){
          100         System.out.println("奶牛開始睡覺了!");
          101     }
          102 }
          103 
          104 class Man implements Person{
          105     public void eat(){
          106         System.out.println("男人開始吃東西了!");
          107     }
          108     public void sleep(){
          109         System.out.println("男人要睡覺了!");
          110     }
          111 }
          112 
          113 class Woman implements Person{
          114     public void eat(){
          115         System.out.println("女人開始吃東西了!");
          116     }
          117     public void sleep(){
          118         System.out.println("女人要睡覺了!");
          119     }
          120 }

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 昌邑市| 长春市| 台北县| 依兰县| 五常市| 湟中县| 卓资县| 东海县| 京山县| 犍为县| 三穗县| 武定县| 平遥县| 永年县| 和平区| 房产| 澄城县| 武定县| 嘉祥县| 安达市| 泽库县| 华蓥市| 龙泉市| 基隆市| 鲁山县| 肇源县| 泸定县| 东光县| 建始县| 香格里拉县| 晴隆县| 乌兰浩特市| 浦县| 文水县| 沈丘县| 玛沁县| 两当县| 宁河县| 芮城县| 深水埗区| 五大连池市|