魚躍于淵

          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 }

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


          網站導航:
           
          主站蜘蛛池模板: 南溪县| 萨迦县| 华亭县| 罗平县| 乐安县| 项城市| 徐水县| 彰武县| 广州市| 宕昌县| 新竹县| 宝兴县| 灯塔市| 定陶县| 金昌市| 平安县| 阜宁县| 南平市| 宁国市| 偏关县| 马公市| 建昌县| 忻城县| 黑龙江省| 太和县| 邯郸市| 扶绥县| 江安县| 衡山县| 怀远县| 芒康县| 法库县| 缙云县| 特克斯县| 冷水江市| 吴桥县| 平顺县| 信丰县| 竹溪县| 临朐县| 昌宁县|