kukooBlog

          look to the master, follow the master, walk with the master, see through the master, become the master.

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            213 隨筆 :: 0 文章 :: 285 評論 :: 0 Trackbacks

          今天在閱讀Martin Fowler的《Patterns of Enterprise Application Architecture》時,終于讓我``澄清"了tier和layer的關系。 Martin的原話是:

          ``When people discuss layering, there's often some confusion over the terms layer and tier. Often the two are used as synonyms, but most people see tier as implying a physical separation. Client-server systems are often described as two-tier systems, and the separation is physical: The client is a desktop and the server is a server. I use layer to stress that you don't have to run the layers on different machines. A distinct layer of domain logic often runs on either a desktop or the database server. In this situation you have two nodes but three distinct layers. With a local database I can run all three layers on a single laptop, but there will still be three distinct layers.

          我們平時一直說``多層"結構,常常混淆著使用tier或者layer這個詞( N-tier或者N-layer一般是摻和著用的),Matin則非常清楚的區分了這兩個詞的用法: tier更多的是指物理上的層次關系,比如說Client/Server結構,是two-tier的,因為客戶端在桌面機上,服務器則在遠端的數據庫服務器上。 layer則更多的指邏輯上的層,我們通常說的Java EE,應該是N-layer的,因為從邏輯上,Java EE里面有表現層,業務邏輯層和數據永久層,在物理上,這三層可以在不同的tier上(表現層在PC上,業務邏輯層在應用服務器上,數據永久層則在數據庫服務器上),也可以在一個tier上,比如Martin說的,如果把數據庫,應用服務器和瀏覽器都裝在一臺筆記本電腦上,那么,3-layer就是在1-tier上了。

          因此,當我們以后談論Java EE的多層體系時,應該更精確的使用layer這個詞。

          【關于Martin Fowler】
          http://en.wikipedia.org/wiki/Martin_Fowler
          http://martinfowler.com/

          posted on 2006-08-31 15:20 kukooBlog 閱讀(2315) 評論(0)  編輯  收藏 所屬分類: Others
          主站蜘蛛池模板: 晋州市| 鲁山县| 田东县| 新疆| 丽江市| 青河县| 静安区| 安西县| 井陉县| 肥城市| 金沙县| 昂仁县| 库伦旗| 乳山市| 宜宾市| 大渡口区| 北川| 江华| 五峰| 江川县| 汝州市| 霞浦县| 吉木萨尔县| 阿拉善右旗| 尚志市| 库尔勒市| 临沧市| 云和县| 昭通市| 富阳市| 施甸县| 漠河县| 淅川县| 南宫市| 潮州市| 东方市| 金阳县| 横山县| 银川市| 渭南市| 青神县|