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

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

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

    城市獵人

    在一網情深的日子里,誰能說得清是苦是甜,只知道確定了就義無反顧
    posts - 1, comments - 7, trackbacks - 0, articles - 89

    模式(四-1):簡單工廠(Simple Factory)模式

    Posted on 2008-07-22 10:03 sailor 閱讀(165) 評論(0)  編輯  收藏 所屬分類: 模式
    工廠模式是專門負責將大量有共同接口的類實例化,而且不必事先知道每次是要實例化哪一個類的模式。

    一、工廠模式有三種形態  
        簡單工廠(Simple Factory)模式 ,又稱靜態工廠模式
     工廠方法(Factory Method)模式,又稱多形性工廠(Polymorphic Factory)模式
     抽象工廠(Abstract Factory)模式,又稱工具箱(Kit或Toolkit)模式 

    二、簡單工廠模式

            《Head First 設計模式》認為它不是一個設計模式,更像一種編程習慣,優點是可以將客戶端程序從具體類中解耦,不失為一個簡單的方法。

    1、定義
        
    簡單工廠模式是由一個工廠對象決定創建出那一種產品類的實例,它是由一個工廠類根據傳入的參量決定創建出哪一種產品類的實例。

    2、角色
        簡單工廠模式涉及到工廠角色、抽象角色以及具體產品角色等
        
        工廠類(Creator)角色:擔任這個角色的是工廠方法模式的核心,含有與應用緊密相關的商業邏輯。工廠類在客戶端的直接調用下創建產品對象,它往往由一個具體的JAVA類實現。

        抽象產品(Product)角色:擔任這個角色的類是工廠方法模式所創建的對象的父類,或他們共同擁有的接口。抽象產品角色可以用一個java接口或者Java抽象類實現。

        具體產品(Concrete Product)角色:工廠方法模式所創建的任何對象是這個角色的實例,具體產品角色由一個具體java類實現。

    3、實例


     1package com.sailor.simpleFactory;
     2
     3public abstract class Product {
     4
     5    public void produce(){
     6        System.out.println("生產產品");
     7    }

     8    
     9    public abstract void category();
    10
    11    
    12    public abstract int salePrice();
    13    
    14}

    15

     1/**
     2 * 
     3 */

     4package com.sailor.simpleFactory;
     5
     6/**
     7 * 具體產品
     8 * @author sailor
     9 * Jul 22, 2008 10:15:14 AM
    10 */

    11public class Car extends Product{
    12
    13    @Override
    14    public void category() {
    15        System.out.println("生產小汽車");
    16    }

    17
    18    @Override
    19    public int salePrice() {
    20        return new Integer(10000);
    21    }

    22
    23}

    24


     1package com.sailor.simpleFactory;
     2
     3/**
     4 * 具體產品
     5 * @author sailor
     6 * Jul 22, 2008 10:17:12 AM
     7 */

     8public class Pizza extends Product{
     9
    10    @Override
    11    public void category() {
    12        System.out.println("生產Pizza");
    13    }

    14
    15    @Override
    16    public int salePrice() {
    17        return 20;
    18    }

    19
    20}


     1/**
     2 * 工廠
     3 * @author sailor
     4 * Jul 22, 2008 10:13:23 AM
     5 */

     6public class SimpleFactory {
     7
     8    public static Product createProduct(String product){
     9        if("car".equals(product))
    10            return new Car();
    11        else if("pizza".equals(product))
    12            return new Pizza();
    13        else
    14            return null;
    15    }

    16}

     1package com.sailor.simpleFactory;
     2
     3/**
     4 * 客戶端
     5 * @author sailor
     6 * Jul 22, 2008 10:20:59 AM
     7 */

     8public class Client {
     9
    10    /**
    11     * @param args
    12     */

    13    public static void main(String[] args) {
    14        
    15        Product product1 = SimpleFactory.createProduct("car");    
    16        product1.category();
    17        product1.produce();
    18        System.out.println("銷售額: " + product1.salePrice());
    19        
    20        
    21        Product product2 = SimpleFactory.createProduct("pizza");
    22        product2.category();
    23        product2.produce();
    24        System.out.println("銷售額: " + product2.salePrice());    
    25    }

    26}
    主站蜘蛛池模板: 久久国产乱子精品免费女| 亚洲高清毛片一区二区| 免费一级毛片在线播放放视频| 精品久久久久国产免费| 亚洲国产精品久久丫| 亚洲无砖砖区免费| 亚洲色偷偷av男人的天堂| 91成人免费观看| 直接进入免费看黄的网站| 精品免费国产一区二区三区| ASS亚洲熟妇毛茸茸PICS| 毛片基地免费视频a| 亚洲精品国产av成拍色拍| 国产高清免费在线| 鲁啊鲁在线视频免费播放| 亚洲精品在线视频| 国产午夜精品理论片免费观看| 亚洲V无码一区二区三区四区观看 亚洲αv久久久噜噜噜噜噜 | 亚洲综合成人网在线观看| 精品无码AV无码免费专区| 亚洲激情黄色小说| 毛片a级毛片免费观看品善网| 亚洲色成人四虎在线观看| 免费观看日本污污ww网站一区| 国产日韩久久免费影院| 国产aⅴ无码专区亚洲av| 6080午夜一级毛片免费看6080夜福利 | 亚洲精品视频免费观看| 亚洲国产精华液网站w| 鲁大师在线影院免费观看| 中文字幕乱码亚洲精品一区| 四虎精品亚洲一区二区三区| 中文字幕久精品免费视频| 亚洲不卡影院午夜在线观看| 免费亚洲视频在线观看| 国产精品免费福利久久| 亚洲无人区码一二三码区别图片| 国产成人精品久久亚洲高清不卡 | 国产真人无码作爱视频免费| 亚洲中文字幕无码爆乳app| 亚洲一区二区高清|