魚躍于淵

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

          抽象工廠模式

          Posted on 2008-12-21 09:04 魚躍于淵 閱讀(125) 評(píng)論(0)  編輯  收藏 所屬分類: 設(shè)計(jì)模式

            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 }

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宜宾县| 长沙市| 五常市| 饶阳县| 郴州市| 邹平县| 鸡东县| 乐清市| 县级市| 保定市| 揭阳市| 深水埗区| 湘阴县| 上犹县| 宾阳县| 博兴县| 辉县市| 北票市| 溧水县| 手游| 高邑县| 德钦县| 金堂县| 德清县| 靖州| 丁青县| 建德市| 平谷区| 贵定县| 万年县| 色达县| 昔阳县| 灵宝市| 治多县| 夏津县| 随州市| 青神县| 新营市| 如皋市| 鄱阳县| 拜泉县|