个人对于架构设计的理解
處在待業(yè)狀態(tài)最適合做的事情就是對(duì)以前的工作和學(xué)習(xí)做一個(gè)總結(jié)。
?? 讀過一些開源的架構(gòu),比如PetShop的架構(gòu),Nhibernate的架構(gòu),ibatis.net的架構(gòu)。
?? 自己寫過的架構(gòu),從最早的簡(jiǎn)單三層,到面向服務(wù),面向?qū)ο?#xff0c;面向接口編程思想的架構(gòu)的轉(zhuǎn)變,順便乘著空余時(shí)間做下總結(jié),很分析。
?? 也希望得到高人指點(diǎn),給初學(xué)者一些幫助。
?? 我個(gè)人不是太過喜歡于ORM框架,但如果在適合的時(shí)候或者對(duì)ORM有偏向的時(shí)候,我想我也會(huì)對(duì)架構(gòu)做一個(gè)ORM設(shè)計(jì),但目前不是。
?? 從整體來說,整個(gè)架構(gòu)設(shè)計(jì)采用服務(wù)的思想,比如ObjectService繼承于IObjectService接口。這個(gè)就是接口服務(wù)層和實(shí)現(xiàn)服務(wù)層的組成。
?? 接口服務(wù)層Company.Web.IService 實(shí)現(xiàn)服務(wù)層Company.Web.Service。
?? 在整個(gè)業(yè)務(wù)系統(tǒng)中包括業(yè)務(wù)層 Company.Web.Business,在業(yè)務(wù)層中做基類BaseDao,所有的業(yè)務(wù)DAO繼承于BaseDao。
?? 業(yè)務(wù)系統(tǒng)模塊還包括 實(shí)體層 Company.Web.Model,
?? 該實(shí)體層作用包括三個(gè)方面,Entity用來定義實(shí)體,Collect用來存放實(shí)體集合,Table用來規(guī)范數(shù)據(jù)庫字段名稱。
?? 對(duì)于接口與實(shí)現(xiàn)分離的銜接,通過服務(wù)適配器來實(shí)現(xiàn),在boot.config中做接口和實(shí)現(xiàn)的配置,讓適配器讀取服務(wù)做緩存處理。
?? 對(duì)于數(shù)據(jù)庫訪問層可以通過DbProvider實(shí)現(xiàn)多數(shù)據(jù)庫的通用性,通過如下配置以什么方式如何做數(shù)據(jù)庫訪問處理。
??<Service Type="Company.Web.IDbUtilities.IDbService, Company.Web.IDbUtilities" Driver="Company.Web.DbUtilities.SqlService, Company.Web.DbUtilities" />
?? /// <summary>
?? /// 數(shù)據(jù)庫訪問服務(wù)
?? /// </summary>
?? public static IDbService DbService
?? {
?? get
?? {
?? return (IDbService)ServiceManager.Instance.GetService(typeof(IDbService));
?? }
?? }
?? 在基于提供的基礎(chǔ)服務(wù)中,除了DbUtilities,還包括Company.Web.IConfiguration,Company.Web.ICache服務(wù)。
?? Configuration服務(wù)主要作用是記錄基本客戶信息和系統(tǒng)處理基礎(chǔ)信息,必要時(shí)當(dāng)然包括系統(tǒng)運(yùn)行方式的選擇比如基于Local,或者Remoting,或者WebService。
?? 業(yè)務(wù)層包括2塊,是基于服務(wù)端的業(yè)務(wù)層和客戶端的業(yè)務(wù)層。目前實(shí)現(xiàn)的方式是通過WebService。
?? 以下為架構(gòu)截圖
總結(jié)
以上是生活随笔為你收集整理的个人对于架构设计的理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目那点儿事
- 下一篇: 冬季迁徙的飞禽有哪些(冬季迁徙的动物有什