Posted on 2005-11-15 12:35
canonical 閱讀(249)
評論(0) 編輯 收藏 所屬分類:
設計理論
經常有人說XX技術是面向復雜應用的,對于常規應用如果采用那是得不償失。我想很多情況下這只是體現了該技術的不適
應性。我主張系統設計應該盡量體現一種共振原則,即系統架構只有一個,但是面向復雜的應用,它表現出復雜的特性,能夠辨識精細的概念,而面向簡單應用,可
以實現一種優雅的退化(degradation),
對外暴露出一種簡單的結構。抽象的說,我們所建立的不是一個孤立的模型,而是一個模型的系列,不是一個綁定應用的solution而是一種
strategy,在每一個復雜性層次上,都存在著對應的解決方案,而不同復雜性層次上的模型之間又存在著清晰的演化路徑。這也是我所提出的級列設計理論
的要點之一。
在jsplet框架的設計中,充分體現了這一點。
jsplet中通過如下url格式來訪問web應用:
view.jsp?objectName=xxx&objectEvent=yyy&eventTarget=ZZZ
其中objectName的格式規定如下
objectScope@objectType$objectInstanceId
在系統的規模較小,不需要對象的生命周期控制的情況下,我們可以將所有對象都放在根路徑下/。
在同類型的對象只有一個實例的情況下,我們可以不使用objectInstanceId。
在一個頁面對應一個模型對象的情況下,我們可以不使用eventTarget參數。
當頁面比較簡單的情況下,我們可以直接使用jsp輸出頁面,而不用使用其它頁面模板機制。(采用jsp作為view原因很簡單,jsp是標準,它應該成為其它所有第三方模板技術的入口)
為了支持jsplet的url中所體現出的概念,只需要1000行不到的代碼,但是隨著復雜性的增加,我們可以增加越來越多的功能,這體現在url格式的細化上,但是整體的程序結構并沒有發生改變。