控制器框架Struts與策略模式那點事

2021-09-06 09:46:22 字數 1727 閱讀 6865

在寫這篇文章之前,***已經寫過了幾篇關於改控制器框架主題的文章,想要了解的朋友可以去翻一下之前的文章

struts1無疑是乙個灰常經典的mvc框架,在struts有前端控制器和業務控制器的概念。那麼這兩個控制器的實質又是什麼呢?讓我來帶你一步步走進它的世界。

前端控制器actionservlet的職責:

1、通過對拜訪路徑的擷取

2、根據擷取的路徑,例項化響應的業務控制器

業務控制器action的職責:

1、獲取引數

2、呼叫業務邏輯

3、實現轉向

下面,給大家看乙個比較簡單的struts的mvc框架的實現

action:

public inte***ce action 

public class adduseraction implements action

}

actionservlet:

每日一道理

在每個人心中,都曾停留過那些值得懷念的人,也許還在,也許早已消逝,在茫茫人海中丟失,於是,那份懷念便得淒涼,因為模糊的記憶中只剩下乙個「空殼」,沒有什麼,甚至連自己的心都裝不下,時間把一切抹平,也把當日的淚水封鎖,因為已經沒有,懷念只是悲涼!

}但是現在還有一些問題,就是當增加乙個業務邏輯的時候,我們就不得不修改actionservlet,違背了設計模式中的開閉準則。在設計模式中有這樣一句話,凡是有if...else...和switch..case...語句的地方,就可以通過反射來消除。

struts恰是通過乙個struts-config.xml來消除了actionservlet中的if...else...語句,使得actionservlet更加具有通用性,從而開發人員只需要編寫action,然後配置到xml檔案中便可。

靜下心來想,實質上不就是乙個策略模式的呼叫麼?回首之前做過的系統,要想系統變的靈活,其實就是乙個又乙個策略模式的應用。策略加反射的結合通常是乙個框架的核心組成。

至此,對於策略模式的懂得便不得不深入一下了。

最最開始接觸策略模式的時候,是這樣懂得的:對於一件事的不同做法。而這一件事現在的懂得是具體的事情,例如付款可以由用信用卡,現金,支票等。而對於付款和用飯這兩件事,就不會想到這是一件事。其實這只是粒度大小的不同而已。

如果提公升到這都是人的乙個活動層次上呢?兩者是不是就可以說是一件事,不同的處置方法了呢?

struts就是這樣做的,把所有的請求抽取乙個介面action,需要修改的方法為execute(),這些就是struts的核心思想,其他的struts核心物件在下篇部落格中將會逐一論述。

應用框架會影響程式的效率,但是以現在硬體的水平,這些效率問題不再是重要問題,規範性開發被奉為最高綱領。軟體開發從最初起碼**到現在規範性開發,這不得不讚嘆計算機開展的速度。

TP框架 多級控制器,多層控制器

多級控制器是指控制器可以通過子目錄把某個控制器層分組存放,首先需要設定控制器的分級層次,例如,我們設定2級目錄的控制器層 controller level 2,控制器檔案的位置放置如下 controller訪問控制器 useruser分級 組 usertypecontroller.class.php...

Yii 框架控制器建立使用及控制器響應操作示例

yii 框架控制器建立使用 在根目錄下的controllers目錄下建立控制器hellocontroller.php use yii web controller class hellocontroller extends controller 訪問位址 basic web index.php?r ...

控制器與類

其中viewwillunload跟viewdidunload在ios6以後就過期了 loadview 控制器呼叫loadview方法建立控制器的view。當控制器的view存在了就不會呼叫 不要再loadview中呼叫 super loadview 會影響cpu效能 load 當乙個類被載入時呼叫,...