(1)抽象工廠角色
是工廠方法模式的核心,與應用程式無關。任何在模式中建立的物件的工廠類必須實現這個介面。
(2)具體工廠角色
這是實現抽象工廠介面的具體工廠類,包含於應用程式密切相關的邏輯,並且受到應用程式呼叫以建立產品物件。
(3)抽象產品角色
工廠方法模式所建立的物件的超型別,也就是產品物件的共同父類或共同擁有的介面。
(4)具體產品角色:
這個角色實現了抽象產品角色所定義的介面。某具體產品有專門的具體工廠建立,它們之間往往一一對應。
(1)需求
根據需要執行對應的運算。
(2)uml類圖
a.演算法工廠抽象類
package com.longinus.fm;
public
abstract
class factory
b.具體演算法產品工廠類package com.longinus.fm;
public
class
addfactory
extends
factory
}
package com.longinus.fm;
public
class
subfactory
extends
factory
}
package com.longinus.fm;
public
class
mulfactory
extends
factory
}
package com.longinus.fm;
public
class
divfactory
extends
factory
}
c.演算法產品抽象類package com.longinus.fm;
public
abstract
class operation
public
void
setnumbera(double numbera)
public
double
getnumberb()
public
void
setnumberb(double numberb)
public
abstract
double
getresult();
}
d.具體演算法產品類package com.longinus.fm;
public
class
addextends
operation
}
package com.longinus.fm;
public
class
subextends
operation
}
package com.longinus.fm;
public
class
mulextends
operation
}
package com.longinus.fm;
public
class
divextends
operation
return getnumbera() / getnumberb();}}
e.測試類package com
.longinus
.fm;
public class test
}
f.輸出結果8.0
4.012.0
3.0
設計模式學習筆記(五) 工廠方法模式
2 典型實現 3 例項 4 隱藏 5 主要優點 6 主要缺點 7 適用場景 8 總結 儘管簡單工廠模式實現了物件的建立和使用分離,但是仍然存在以下兩個問題 乙個更好的辦法是使用工廠方法模式。工廠方法模式 定義乙個用於建立物件的介面,讓子類決定將哪乙個類例項化。工廠方法又簡稱工廠模式或虛擬構造器模式或...
C 設計模式學習筆記五 工廠方法模式
工廠方法模式 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。工廠方法模式在專案中使用得非常頻繁,以至於很多 中都包含工廠方法模式。該模式幾乎盡人皆知,但不是每個人都能用得好。熟能生巧,熟練掌握該模式,多思考工廠方法如何應用,而且工廠方法模式還可以與其他模...
設計模式(五) 工廠方法模式
工廠方法模式,定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。我們依舊以之前的電腦程式來闡述工廠方法模式 不了解簡單工廠的童鞋戳這裡 1.如下 using system namespace factorymethod set public double n...