<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    vjame

    優(yōu)化代碼是無止境的
    隨筆 - 65, 文章 - 9, 評論 - 26, 引用 - 0
    數(shù)據(jù)加載中……

    工廠方法模式

    工廠方法模式
    工廠方法模式和簡單工廠模式在結構上的不同是很明顯的。工廠方法模式的核心是一個抽象工廠類,而簡單工廠模式把

    核心放在一個具體類上。工廠方法模式可以允許很多具體工廠類從抽象工廠類中將創(chuàng)建行為繼承下來,從而可以成為多個簡單工廠模式的綜合,進而推廣了簡單工廠模式。

    此模式涉及到抽象工廠角色(汽車廠),具體工廠角色(具體的汽車車間),抽象產品角色(汽車)以及具體產品角色(私車,公交巴士)。


    package com.strongit.factory;


    //抽象汽車
    interface Car{
        
    public void run();
        
    public void stop();
    }

    //奔馳汽車
    class Benz implements Car{
        
    public void run() {
            System.out.println(
    "BMW run ");
        }

        
    public void stop() {
            System.out.println(
    "BMW stop  ");
        }
    }

    //福特汽車
    class Ford implements Car{

        
    public void run() {
            System.out.println(
    "Ford run ");
        }
        
    public void stop() {
            System.out.println(
    "Ford stop ");
        }
        
    }

    //公交巴士
    class Bus implements Car{

        
    public void run() {

            System.out.println(
    "Bus run ");
        }

        
    public void stop() {
            
    // TODO Auto-generated method stub
            System.out.println("Bus stop ");
        }
        
    }

    //迷你巴士
    class MinBus implements Car{

        
    public void run() {

            System.out.println(
    "MinBus run ");
        }

        
    public void stop() {

            System.out.println(
    "MinBus stop ");
        }
        
    }

    //抽象工廠 
    interface Abstractfactory{

    }

    //汽車工廠
    class CarFactory implements Abstractfactory{
        
    public Car getCar(String type){
            Car c
    =null;
            
    try {
                c
    =(Car)Class.forName("com.strongit.factory."+type).newInstance();
            } 
    catch (InstantiationException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            } 
    catch (IllegalAccessException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            } 
    catch (ClassNotFoundException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
    return c;
        }
    }

    //巴士工廠
    class BusFactory implements Abstractfactory{
        
    public Car getBus(String type){
            Car c
    =null;
            
    try {
                
    //java反射機制
                c=(Car)Class.forName("com.strongit.factory."+type).newInstance();
            } 
    catch (InstantiationException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            } 
    catch (IllegalAccessException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            } 
    catch (ClassNotFoundException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
    return c;
        }
    }

    //客服端調用
    public class FactoryDemo {

        
    public static void main(String[] args) {
            
    //CarFactory cf=new CarFactory();
            BusFactory bf=new BusFactory();
            Car c
    =null;
            
    //c=cf.getCar("Benz");
            c=bf.getBus("MinBus");
            c.run();
            c.stop();
        }

    }

    /** 運行結果:
    MinBus run 
    MinBus stop 
     
    */


    posted on 2008-10-31 18:23 lanjh 閱讀(262) 評論(0)  編輯  收藏 所屬分類: 設計模式


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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 中文字幕亚洲综合小综合在线| 日韩亚洲变态另类中文| 亚洲精品不卡视频| 18禁超污无遮挡无码免费网站| 亚洲无码视频在线| 四虎影视久久久免费| 亚洲精品视频免费| 久久国产精品免费一区二区三区| 国产精品亚洲不卡一区二区三区| 一级女性全黄生活片免费看| 亚洲性在线看高清h片| 国产区在线免费观看| 国产亚洲av片在线观看16女人| 国产日韩AV免费无码一区二区 | 很黄很黄的网站免费的| 91午夜精品亚洲一区二区三区| 中国在线观看免费国语版| 99亚偷拍自图区亚洲| 免费国产小视频在线观看| 一级**爱片免费视频| 亚洲AV无码国产精品麻豆天美| 精品无码无人网站免费视频| 亚洲中文字幕人成乱码 | 国产精品无码一二区免费| 国产精品亚洲五月天高清| 亚洲综合色区在线观看| 男人的天堂网免费网站| 亚洲mv国产精品mv日本mv| 国产精品久免费的黄网站 | 亚洲日韩小电影在线观看| 一级毛片在线免费看| 中文字幕在线观看亚洲日韩| 免费A级毛片无码久久版| 日本一区午夜艳熟免费| 亚洲人成网网址在线看| 亚洲av无码专区在线观看素人| 中文字幕免费视频精品一| 亚洲成A∨人片在线观看无码| 成年男女男精品免费视频网站| 一级**爱片免费视频| 亚洲成年人免费网站|