來源:北大青鳥飛迅校區(qū)|發(fā)布時間:2013-04-30 16:42:52
只用class的,那叫做“基于對象”,比如當初的vb6.0;只是分了三個項目,把以前寫在一起的代碼分成了三份,所謂的業(yè)務邏輯層就是一個傳聲筒,這一類自稱三層的,在我看來都是“模仿三層”,甚至是“偽三層”。
面向?qū)ο螅褪且瓤紤]“對象”,考慮對象的時候完全不用去考慮數(shù)據(jù)庫結(jié)構(gòu)是什么樣子的,這個對吧?ORM講究的是現(xiàn)有O后有R,然后再去映射。
代碼
寫到這里,突然想到一個觀點:其實O和R是同時有的,他們都是根據(jù)項目需求來分別設計的,互不影響!都設計好了之后再去考慮如何映射。
您可能會說,都分別設計,那么設計之后還能對應上嗎?關于這個問題,本來對象和關系型數(shù)據(jù)庫的思路就是完全相反的。
面向?qū)ο,考慮的是對象,抽象,個體。要把眾多的對象抽象出來,要把眾多的屬性、方法整合起來,要把各個類找到適合的關系。
關系型數(shù)據(jù)庫,考慮的是劃分,做到數(shù)據(jù)盡量沒有冗余,那么多的范式要達到的效果是什么?就是要盡量的分表,分成多個表,每個表只表達一種意思,然后在“關系”(關聯(lián))在一起,以達到避免數(shù)據(jù)冗余的目的。
面向?qū)ο笫歉揪筒蝗タ紤]數(shù)據(jù)冗余的問題的,他考慮的是“一”。一個對象的結(jié)構(gòu),和其他對象的關系(繼承、接口、委托、組合、聚合等)。他不會考慮一萬個實例會如何,至少不會把這個當成重點來考慮。
關系型數(shù)據(jù)庫考慮的是“多”,多條數(shù)據(jù),一萬、十萬、百萬條記錄,要如何處理。多條數(shù)據(jù)如何處理的問題。
好像有點跑題了,趕緊回來。
上一篇,寫的那種“分開”方式,為了三層而三層的做法,我覺得就是偽三層,所以請注意,我說的是偽三層不好,為了三層而三層是不對的。我覺得我上一篇寫代碼的方式根本就不是真正的三層,所以請大家不要誤會,我并沒有說真正的三層不好,我也不是反對面向?qū)ο蟆?/p>
這一篇我就是想說一下,我使用面向?qū)ο蟮姆绞健R苍S我的思路和您的理解不大一致,不過沒關系嘛,拿出來大家一起討論嘛。
網(wǎng)站,從業(yè)務方面(就是客戶的需求)可能的分類形式,比如博客園
一開始博客園并沒有這么多的模塊,后來慢慢加上去了。那么我們是不是要按照這些分類來設計類呢?一個模塊一個類或者若干個類?如果簡單的這么做的話,那么就是類爆炸!而且沒有進行抽象。(我不知道博客園是怎么做的,這里只是猜測,從技術(shù)角度上的猜測。我只是那大家熟悉的來舉個例子,請不要聯(lián)想,謝謝。)
我作網(wǎng)站的話,會從另一個角度來思考 —— 從頁面的角度來分類
可能您看著有點暈,這都什么呀,亂七八糟的,先不要著急,帶我慢慢道來。
招生熱線: 4008-0731-86 / 0731-82186801
學校地址: 長沙市天心區(qū)團結(jié)路6號
Copyright © 2006 | 湖南大計信息科技有限公司 版權(quán)所有
湘ICP備14017520號-3