2007/04/04

該死的Design Pattern





因為Engine只能有一份,本來試用Singleton Pattern,
結果造成Recursive new了無限多個Engine,把Stack塞爆。
原因出自Engine與其它幾個class彼此互相擁有對方,產生蛋生雞,雞生蛋的冏境。

Engine與contorller,Canvas,Manager之間,乍看之下很適合Mediator Pattern,
但其實它們擁有Engine,只是為了從Engine取得各自需要的data,
除了Canvas藉由Engine取得Manager的控制權之外,
這些Class並沒有透過Engine去控制其它Class。
所以又似乎用不到Mediator Pattern。

Manager與MyObject之間,看似很像Factory Method,
但Manager又不只單純負責生產物件,它還有其它的管理功能,
尤以AgentManager最為複雜。

所以花了很多時間,卻沒一個Pattern派上用場。
氣!!

No comments:

Post a Comment