1. 程式人生 > >簡單工廠模式(simple factory pattern)

簡單工廠模式(simple factory pattern)

vs2005+C#+.net 2.0 

using System;
using System.Collections.Generic;
using System.Text;

namespace SimpleFactoryPattern
{
    
publicclass SchoolUser
    
{
        
protectedstring FName;
        
protectedstring LName;
        
protectedstring UserType;

        
publicvoid Show()
        
{
            Console.WriteLine(
"First Name:"+ FName);
            Console.WriteLine(
"Last Name:"+ LName);
            Console.WriteLine(
"User Type"+ UserType);
        }

    }


    
publicclass SchoolPrincipal : SchoolUser
    
{
        
public SchoolPrincipal()
        
{
            FName 
="Jian";
            LName 
="Yang";
            UserType 
="Principal";
        }

    }


    
publicclass SchoolTeacher : SchoolUser
    
{
        
public SchoolTeacher()
        
{
            FName 
="David";
            LName 
="Terry";
            UserType 
="Teacher";
        }

    }


    
publicclass UserFactory
    
{
        
public SchoolUser GetSchoolUser(string
 user, string password)
        
{
            
if (user =="Principal"&& password =="Principal")
                
returnnew SchoolPrincipal();
            
if (user =="Teacher"&& password =="Teacher")
                
returnnew SchoolTeacher();
            
returnnull;
        }

    }

    
class Client
    
{
        
staticvoid Main(string[] args)
       
{
            UserFactory uf 
=new UserFactory();
            SchoolUser su;
            su 
= uf.GetSchoolUser("Principal""Principal");
            Console.WriteLine(
"=====Principal Log In=====");
            su.Show();
            su 
= uf.GetSchoolUser("Teacher""Teacher");
            Console.WriteLine(
"======Teacher Log In======");
            su.Show();
            Console.Read();
       }

    }

}

優點:是客戶端獨立於產品的建立過程,並且在系統引入新產品時無需對客戶端進行修改。

缺點:當新產品加入系統時,必須要修改工廠類,已加入必要的處理邏輯。簡單工廠模式的致命弱點是處於工廠核心地位的工廠類,一旦它無法確定對哪個類進行例項化,就無法使用模式。

相關推薦

簡單工廠模式simple factory pattern

vs2005+C#+.net 2.0  using System;using System.Collections.Generic;using System.Text;namespace SimpleFactoryPattern...{    publicclass S

建立型模式——簡單工廠模式Simple Factory Pattern

開頭  我們可以將設計模式分為三大類,分別為建立型模式、結構型模式、行為型模式,每種模式有著各自的特點。  建立型模式——它是用來描述如何建立物件的。  思維導圖:建立型模型分類建立型模式又分為簡單工廠

簡單工廠模式Simple Factory Pattern學習

書籍:《C#設計模式》(《C# Design Patterns:A Tutorial》) 【美】 James W.Cooper 著  張志華 劉雲鵬 等譯 簡單工廠模式:簡單工廠類根據提供給它的資料,返回幾個可能類中的一個類的例項。通常它返回的類都有一個共同的父類和共同的方

設計模式學習筆記--簡單工廠模式Simple Factory Pattern【建立型模式

簡單工廠模式: 工廠是用來生成產品的,簡單工廠,說明工廠能力有限因此只生成一個系列的產品。 此係列產品提供一個產品抽象,具體的產品在派生產品中進行實現。 簡單工廠(一個類),用來管理這個系列產品的生產。工廠中會有一個creat(char* name)成員函式name是需要生

設計模式-3簡單工廠模式Simple Factory Pattern

一、引言 在面向物件程式設計中, 最通常的方法是一個new操作符產生一個物件例項,new操作符就是用來構造物件例項的。但是在一些情況下, new操作符直接生成物件會帶來一些問題。舉例來說, 許多型別物件的創造需要一系列的步驟: 你可能需要計算或取得物件的初始

簡單工廠模式Easy Factory Pattern簡單&粗暴解析

1.前言 在之前的文章設計模式(Design pattern):簡單&粗暴解析中已經為大家深入淺出解析了 設計模式 的 七大原則、三大型別。 本文為大家解析三大型別中 建立型 裡其中的 簡單工廠模式。 文章中例項  linhaojian的Git

設計模式簡單工廠模式simple factory pattern)

什麼是簡單工廠模式, 舉個不恰當的例子, 就說生產雪糕吧, 雪糕什麼形狀的都有, 有長方形,有圓形等等, 怎麼生產呢? 首先肯定是先造個機器, 然後弄幾個按鈕,上面依次寫上長方形, 圓形等等,我按長方形就給我出長方形的, 我按圓形的按鈕就給我出圓形的。 大概就是這樣接下來

抽象工廠模式Abstract Factory Pattern簡單&粗暴解析

1.前言 在之前的文章設計模式(Design pattern):簡單&粗暴解析中已經為大家深入淺出解析了 設計模式 的 七大原則、三大型別。 本文為大家解析三大型別中 建立型 裡其中的 抽象工廠模式。 文章中例項  linhaojian的Git

【設計模式簡單工廠模式Simple Factory

思想 簡單工廠模式,因為用於建立例項的方法是靜態的,又稱為靜態工廠方法模式。在該模式中,可以根據引數的不同返回不同類的例項。簡單工廠模式專門定義一個類來負責建立其他類的例項,被建立的例項通常都具有相同的父類。 結構 組成(角色) 作用

設計模式 (四)——簡單工廠模式Simple Factory,建立型

1.概述 使用設計模式可以提高程式碼的可複用性、可擴充性和可維護性。簡單工廠模式(Simple Factory Pattern)屬於建立型模式。簡單工廠模式,由一個工廠物件決定創建出哪一種產品類的例項,它經常被用於封裝建立物件的程式碼。 簡單工廠模式類圖結構

2,抽象工廠模式Abstract Factory Pattern 抽象工廠可以一下生產一個產品族裏面有很多產品組成

creat name hba abstract 模式 存在 names cto 園區 備註  工廠模式:要麽生產香蕉、要麽生產蘋果、要麽生產西紅柿;但是不能同時生產一個產品組。     抽象工廠:能同時生產一個產品族。===》抽象工廠存在原因 解釋 : 具體工廠

抽象工廠模式Abstract Factory Pattern

rac left nbsp rri class a 生成 color wid nds 抽象工廠模式:抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠創建其他工廠。該超級工廠又稱為其他工廠的工廠。

06 抽象工廠模式Abstract Factory Pattern

隔了兩三天,今天在複習兩個設計模式。 描述性文字 上節通過奶茶店的例子引入了簡單工廠模式與工廠方法模式, 本節我們來繼續通過這個例子引出抽象工廠模式! 程式碼示例 package abstractFactoryPattern; import java.util.Rando

設計模式實戰 - 抽象工廠模式Abstract Factory Pattern

0 導讀 工廠方法模式人是造出來了,可都是清一色的型別,缺少關愛、仇恨、喜怒哀樂等情緒,人類的生命太平淡了,忘記給人類定義性別了,那怎麼辦? 從頭開始建立所有的事物也是不可能的,那就想在現有的條件下重新造人,儘可能舊物利用嘛 人種(Product產品類)應該怎麼改造呢?怎麼才能讓人類有愛有恨呢?定義互斥的性

重走Java設計模式——抽象工廠模式Abstract Factory Pattern

抽象工廠模式 抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態。 抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式。抽象工廠模式可以向客戶端提供一個介面,使客戶端在不必指定產品的具體的情況下,建立多個產品族中的產品物件。根據里氏替換原則,任

設計模式:抽象工廠模式Abstract Factory Pattern

/** * 抽象工廠模式。<br/> * 抽象工廠模式提供一個介面,用於建立相關或依賴物件的家族,而不需要明確指定具體類。 * @author Bright Lee */ public class AbstractFactoryPattern { public sta

大白話抽象工廠模式Abstract Factory Pattern

例項分析 大白話工廠方法模式(Factory Method)一文中,我們講解了日產4S店工廠規模的擴大,建立了針對不同車型的工廠,減少了工廠的工作內容,提高了效率。下面我們繼續以4S店的故事討論抽象工廠模式。 為了滿足各個階層的客戶,日產公司推出了豪華系列品牌英菲尼迪,而且為了吸引客戶購買,購車贈送行車記錄儀

簡單工廠模式/靜態工廠模式Static Factory Method C++實現

#include <iostream> using namespace std; typedef enum ProductType { TypeA, TypeB } PRODUCTTYPE; class AbsProduct { public : virtual vo

簡單工廠模式Abstract Factory

        一直想認認真真的學習一下設計模式,發現不開始行動起來一直找不到時間好好學習一下,索性通過部落格的方式督促自己過一遍設計模式 所謂簡單工廠模式,英文描述為Provides one level of interface higher than the facto

設計模式簡單工廠模式C#語言描述

嚴格意義上來說,簡單工廠模式並不屬於GoF的23種設計模式,但是它是學習其他工廠模式的基礎和前提條件。理解了簡單工廠模式,學習工廠方法模式和抽象工廠模式會比較容易一些。 簡單工廠模式的定義 定義一個工廠類,他可以根據不同的引數返回不同類的例項。通常情況下,被建立的類的例項通常都具有共同的父類。