一個業務模型的設計(一)

來源:互聯網
上載者:User

最近接觸了一個網站,設計者將業務對象建摸為一個EntityBase為基類的SimpleEntity和ComplexEntity兩類,而SimpleEntity自身擁有很多Property, ComplexEntity又由很多Profile類聚和而成,每個Profile有許多Property。最特別的,ComplexEntity與Profile對象之間的歸屬關係是由Profile對象的一個屬性關聯起來的。

對於這種設計,看起來是非常靈活,但是我個人是持保留意見的。原因有如下三點:

一、業務對象之間的複雜關係是應該盡量避免的,而此處將一個業務對象拆解成多個Profile似乎更加劇了類別關係的複雜和類數量的膨脹。

二、由Profile對象的一個屬性關聯ComplexEntity類,而不是由ComplexEntity類直接包含Profile對象集合,這樣擷取整個對象(包含Profile和ComplexEntity)似乎只能通過反射,這樣的話效率也許有問題(沒有經過論證)。

三、將一個邏輯對象的屬性分散為N個Profile對象中(經過NHibernate持久化以後,將會是N個資料表),跨Profile對象的屬性查詢效率可能會受到影響。

為了一些靈活性,而引起上述三個不算輕微的問題,這種設計到底如何?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.