優點:
1 可擴充套件 ,加入新產品時,無需對原**進行修改,只需在專案空間中新增實現介面的類即可
2 工廠可以自主設計產品,並且如何建立產品的細節全部在工廠內部,也叫多型工廠模式
3 包含抽象產品,具體產品 ,抽象工廠,具體工廠
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using system.configuration;
using system.reflection;
namespace factorymothod
//具體產品a
class
concreatemethoda
: product
public
void
methoddisplay()
}//具體產品b
class
concreatemethodb
: product
public
void
methoddisplay()
}//抽象工廠
inte***ce
factory
//具體工廠a
class
concreatefactorya
:factory
}//具體工廠b
class
concreatefactoryb
:factory
}class
program
}}
配置檔案
<
?xml version=
"1.0" encoding=
"utf-8"
?>
<
add key=
"factoryname"
value
="factorymothod.concreatefactorya"
/>
<
"v4.0" sku=
".netframework,version=v4.5.2"
/>
<
/startup>
<
/configuration>
object obj = assmbly.load(「程式集名」).createinstance("程式集名.類「); C 設計模式 工廠方法模式
問題描述 之前講到了c 設計模式 簡單工廠模式,由於簡單工廠模式的侷限性,比如 工廠現在能生產producta productb和productc三種產品了,此時,需要增加生產productd產品 那麼,首先是不是需要在產品列舉型別中新增新的產品型別標識,然後,修改factory類中的switch結...
C 設計模式 工廠方法模式
問題描述 之前講到了c 設計模式 簡單工廠模式,由於簡單工廠模式的侷限性,比如 工廠現在能生產producta productb和productc三種產品了,此時,需要增加生產productd產品 那麼,首先是不是需要在產品列舉型別中新增新的產品型別標識,然後,修改factory類中的switch結...
C 設計模式 工廠方法模式
abstract class product class concreteproducta product class concreteproductb product abstract class factory class concreteafactory factory class concr...