HELLO WORLD中的設計模式

模式中的HELLO WORLD

你每次都考慮過"Hello World"被重新實現過多少次嗎?這是一個最根本的浪費重用的機會!下面是一個關於設計模式的故事......

瘋狂的運用設計模式

有關濫用或過度使用設計模式已經不是一件新鮮事了。我這裏就有一個例子。我實現了一個"Hello World"命令行腳本,使用大概160行面向對象的PHP 5代碼。這個原則已經無理由的加入了設計模式。

它比簡單的打印"Hello World"做得更多。它將使用兩種可選擇的方式打印並且顯示你輸入的其它文字。與之相等的腳本將只有4、5行。也許他需要一張用例圖?

這個程序使用了多種設計模式,包括MVC(模型、視圖、控制器), Observer(觀察者模式), Strategy(策略模式), Decorator(裝飾模式), Factory Method(工廠方法模式)和Facade(門面模式)。

它將着重於嘗試將所有的GoF的實際模式運用起來,並且我確定我可以將它增加到1000行,但我不會這麼做因爲我還有其它事要幹。

一些我寫代碼過程中的注意事項:
1、如何讓沒有價值的代碼看起來使人印象深刻。
2、如何讓這種沒有用的機制運行起來。
3、如何當程序的複雜性增加的時候仍然有更多機會去增加無用的設計模式。

從一個更大的視角來看這個這些觀察資料是使人厭煩的。這個例子看起來支持設計模式的概念,但是卻更容易導致問題,並且難於診斷和解決。

如果這個代碼寫的更老練並且無意義的部分更少,或許它更難以被重構。他就像一個迷宮。這個從死亡的設計模式散發出來的腐爛的臭味並不是他特有的。

但是這個程序工作了。經管他已經死亡了,它仍然執行了並且產生了一個結果。你或許會說這就像那些一通過電流就抽搐的青蛙的腿。

將它和典型的hacker產品比較,它或許不是一個參觀的好地方,但是這卻有一個緊急出口。簡單的說,良好的重構所做的工作就是改變了代碼直接相關的類型。(而然,如果你真的想阻止重構,單個字母的變量名和自由使用的全局變量將非常有效。)

/*代碼略,請參考原文*/

挑戰:HelloWorldFormatter類目前只支持使用命令行格式化"Hello World"。這個例子需要增加HTML支持,就好像"Hello World<br>"這種格式。如果你想要支持HTML,考慮一下XHTML,必須要支持"Hello World<br />"這種格式。開始挑選你的模式吧......

原文及代碼:http://phppatterns.com/index.php/article/articleview/103/1/1/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章