分层架构的优缺点分析?

我们在开发软件的时候,为了能够更有效的进行系统架构,一般会使用分层架构的形式来进行搭建。下面霍营电脑培训就一起来了解一下关于分层架构的优缺点都有哪些。



什么是分层架构?


分层架构是将软件模块按照水平切分的方式分成多个层。一个系统由多层组成,每层由多个模块组成。那么到底分几层合适?我认为根据不同的复杂度分成不同的层次,基本的是分层架构是三层,即表现层,领域层和数据持久层。而《领域驱动设计》EricEvans建议分四层分别是表现层,应用层、领域层和基础层,业务逻辑在领域层,基础层比持久层的范围更大,不仅可以提供持久层服务,还可以提供缓存等服务。四层中的应用层是对三层架构中领域层进行进一步拆分。但是无论怎么分层,业务逻辑永远在领域层。


分层架构的好处


分层架构的目的是通过关注点分离来降低系统的复杂度,同时满足单一职责、高内聚、低耦合、提高可复用性和降低维护成本。


单一职责:每一层只负责一个职责,职责边界清晰,如持久层只负责数据查询和存储,领域层只负责处理业务逻辑。


高内聚:分层是把相同的职责放在同一个层中,所有业务逻辑内聚在领域层。这样做有什么好处呢?试想一下假如业务逻辑分散在每一层,修改功能需要去各层修改,测试业务逻辑需要测试所有层的代码,这样增加了整个软件的复杂度和测试难度。


低耦合:依赖关系非常简单,上层只能依赖于下层,没有循环依赖。


可复用:某项能力可以复用给多个业务流程。比如持久层提供按照还款状态查询信用卡的服务,既可以给申请信用卡做判断使用,也可以给展示未还款信用卡使用。


易维护:面对变更容易修改。把所有对外接口都放在对外接口层,一旦外部依赖的接口被修改,只需要改这个层的代码即可。


以上这些既是分层的好处也是分层的原则,大家在分层时需要遵循以上原则,不恰当的分层会违背了分层架构的初衷。


分层架构的缺点


分层架构也有几个缺点


开发成本高:因为多层分别承担各自的职责,增加功能需要在多个层增加代码,这样难免会增加开发成本。但是合理的能力抽象可以提高了复用性,又能降低开发成本。


性能略低:业务流需要经过多层代码的处理,性能会有所消耗。


可扩展性低:因为上下层之间存在耦合度,所有有些功能变化可能涉及到多层的修改。




  • 鍖楀ぇ闈掗笩java鍩硅:鍒嗗眰鏋舵瀯鐨勪紭缂虹偣鏈夊摢浜?
    绛旓細涓夈佸垎灞傛灦鏋勭殑缂虹偣1銆寮鍙戞垚鏈珮鐢变簬澶氬眰鎵挎媴鐫鍚勮嚜鐨勪换鍔★紝鍥犳闇瑕佸湪澶氫釜绾у埆涓婅拷鍔犱唬鐮侊紝浠ユ坊鍔犲姛鑳姐傝繖鏍凤紝寮鍙戞垚鏈氨浼氬鍔犮備絾鏄紝鍖楀ぇ闈掗笩璁や负鍚堢悊鐨勮兘鍔涙娊璞″寲鍙互鎻愰珮澶氶噸鎬э紝闄嶄綆寮鍙戞垚鏈2銆佸彲鎵╁睍鎬т綆锛氱敱浜庡湪涓婁笅灞備箣闂村瓨鍦ㄧ粨鍚堝害锛屾墍浠ユ墍鏈夌殑鍔熻兘鍙樺寲閮芥湁鍙兘鍙備笌澶氬眰鐨勪慨姝c
  • 璇烽棶浠涔堟槸鍒嗗眰鏋舵瀯?
    绛旓細鍒嗗眰鏋舵瀯鐨勫紛绔 1銆佺骇鑱斾慨鏀归棶棰銆備竴浜涘鏉傜殑涓氬姟涓紝鐢变簬涓氬姟娴佺▼鍙戠敓鍙樺寲锛屼负浜嗚繖涓彉鍖栨墍鏈夊眰閮介渶瑕佷慨鏀广2銆鎬ц兘闂銆傛湰鏉ユ槸鐩存帴绠鍗曠殑鎿嶄綔锛岄渶瑕佸湪鏁翠釜绯荤粺涓眰灞備紶閫掞紝鍔垮繀閫犳垚鎬ц兘鐨勪笅闄嶏紝鍚屾椂涔熷姞澶х殑寮鍙戠殑澶嶆潅搴︺備粠涓婇潰鐨勫垎鏋愬彲浠ョ湅鍑猴紝 鍒嗗眰鏋舵瀯璁捐鏈夎澶氫紭鐐瑰悓鏍峰瓨鍦ㄤ笉瓒筹紝鍦ㄥ疄闄呬娇鐢ㄨ繃绋嬩腑锛屾垜...
  • 璁$畻鏈虹綉缁滅郴缁鍒嗗眰缁撴瀯鐨浼樼偣鏄粈涔?
    绛旓細3銆佸垎灞傛灦鏋勬槗浜庣淮鎶銆傚湪瀵圭郴缁熻繘琛屽垎瑙e悗锛屼笉鍚岀殑鍔熻兘琚皝瑁呭湪涓嶅悓鐨勫眰涓紝灞備笌灞備箣闂寸殑鑰﹀悎鏄捐憲闄嶄綆銆傚洜姝ゅ湪淇敼鏌愪釜灞傜殑浠g爜鏃讹紝鍙涓嶆秹鍙婂眰涓庡眰涔嬮棿鐨勬帴鍙o紝灏变笉浼氬鍏朵粬灞傞犳垚涓ラ噸褰卞搷銆
  • 鍒嗗眰鏋舵瀯鐨勪紭缂虹偣鍒嗘瀽?
    绛旓細鍒嗗眰鏋舵瀯鐨勭洰鐨勬槸閫氳繃鍏虫敞鐐瑰垎绂绘潵闄嶄綆绯荤粺鐨勫鏉傚害锛鍚屾椂婊¤冻鍗曚竴鑱岃矗銆侀珮鍐呰仛銆佷綆鑰﹀悎銆佹彁楂樺彲澶嶇敤鎬у拰闄嶄綆缁存姢鎴愭湰銆傚崟涓鑱岃矗锛氭瘡涓灞傚彧璐熻矗涓涓亴璐o紝鑱岃矗杈圭晫娓呮櫚锛屽鎸佷箙灞傚彧璐熻矗鏁版嵁鏌ヨ鍜屽瓨鍌紝棰嗗煙灞傚彧璐熻矗澶勭悊涓氬姟閫昏緫銆傞珮鍐呰仛锛氬垎灞傛槸鎶婄浉鍚岀殑鑱岃矗鏀惧湪鍚屼竴涓眰涓紝鎵鏈変笟鍔¢昏緫鍐呰仛鍦ㄩ鍩熷眰銆傝繖鏍...
  • 鍒嗗眰钀ラ攢绛栫暐鐨勪紭缂虹偣
    绛旓細浠庝笂闈㈢殑鍒嗘瀽鍙互鐪嬪嚭锛鍒嗗眰鏋舵瀯鍙互闄嶄綆灞傚唴鍙樺寲鐨勬垚鏈紝鑰屽浜嶢PI鐨勫彉鍖栭潪甯告晱鎰銆傚鍦ㄧ骇鑱斾慨鏀逛腑鎻愬埌鐨勨滃湪鍒嗛〉鐨勫悓鏃惰繕鑳藉垎閮ㄩ棬鈥濈殑鏂伴渶姹傦紝灏辨槸瀵笰PI杩涜鐨勫彉鍔ㄣ侫PI鐨勫彉鍔ㄥ浜庡垎灞傛灦鏋勬槸鑷村懡鐨勶紝淇敼璧锋潵闅惧害闈炲父澶с傛墍浠ワ紝涓涓畝鍗曠殑鍒ゆ柇娉曞垯灏辨槸锛氬鏋滄偍鐨勭郴缁熷眰鍐呴绻佸彉鍔(鐢氳嚦鏁村眰鏇挎崲)鍙兘鎬...
  • 涓夊眰缁撴瀯鐩稿浜屽眰鏋舵瀯鏈夊摢浜涗紭鐐
    绛旓細寰蒋鎺ㄨ崘鐨鍒嗗眰寮忕粨鏋勪竴鑸垎涓轰笁灞傦紝浠庝笅鑷充笂鍒嗗埆涓猴細鏁版嵁璁块棶灞傘佷笟鍔¢昏緫灞傦紙鍙堟垨鎴愪负棰嗗煙灞傦級銆佽〃绀哄眰.浜屻佷笁灞缁撴瀯鐨浼樼偣1銆佸紑鍙戜汉鍛樺彲浠ュ彧鍏虫敞鏁翠釜缁撴瀯涓殑鍏朵腑鏌愪竴灞傦紱2銆佸彲浠ュ緢瀹规槗鐨勭敤鏂扮殑瀹炵幇鏉ユ浛鎹㈠師鏈夊眰娆$殑瀹炵幇锛3銆佸彲浠ラ檷浣庡眰涓庡眰涔嬮棿鐨勪緷璧栵紱4銆佹湁鍒╀簬鏍囧噯鍖栵紱5銆佸埄浜庡悇灞傞昏緫鐨勫鐢ㄣ
  • 涓夊眰缁撴瀯鐩稿浜屽眰鏋舵瀯鏈夊摢浜涗紭鐐
    绛旓細瀵归」鐩殑褰卞搷鏋佷负涓ラ噸.闄嶄綆灞備笌灞傞棿鐨勪緷璧栨,鏃㈠彲浠ヨ壇濂藉湴淇濊瘉鏈潵鐨勫彲鎵╁睍,鍦ㄥ鐢ㄦт笂涔熸槸浼樺娍鏄庢樉.姣忎釜鍔熻兘妯″潡涓鏃﹀畾涔夊ソ缁熶竴鐨勬帴鍙,灏卞彲浠ヨ鍚勪釜妯″潡鎵璋冪敤,鑰屼笉鐢ㄤ负鐩稿悓鐨勫姛鑳借繘琛岄噸澶嶅湴寮鍙.杩涜濂界殑鍒嗗眰寮缁撴瀯璁捐,鏍囧噯涔熸槸蹇呬笉鍙皯鐨.鍙湁鍦ㄤ竴瀹氱▼搴︾殑鏍囧噯鍖栧熀纭涓,杩欎釜绯荤粺鎵嶆槸鍙墿灞曠殑,鍙...
  • 楂樺彲鐢ㄧ殑鏋舵瀯鍒嗗眰
    绛旓細鏋舵瀯鐨鍒嗗眰鍙栧喅浜庝笟鍔″彂灞曢樁娈 1. 涓氬姟鏁版嵁閲忋佽姹傞噺蹇熷闀挎湡 寮曞叆鍒嗗眰 鎺ュ叆灞傘侀昏緫灞傘佹暟鎹瓨鍌ㄥ眰绛 婊¤冻涓氬姟澧為暱闇姹 2. 涓氬姟璇锋眰楂樺苟鍙戯紝娴烽噺瀛樺偍鏈 姣忎竴灞傝繘涓姝ョ粏鍖 鍒嗗竷寮忓瓨鍌ㄣ丯oSql銆丷DBMS鍒嗗簱鍒嗚〃 3. 涓氬姟澶氥佽姹傚銆佸叧绯诲鏉 鍒楄〃鍖 鏈嶅姟鍖 瑙h︺佺ǔ瀹 58甯府鍒嗗眰鏋舵瀯 ...
  • java涓殑4灞鏋舵瀯,涓轰粈涔堣灏3灞鍒嗗眰4灞,杩欐牱鏈変粈涔濂藉,4灞傚悗,姣忓眰...
    绛旓細鍒嗗眰鐨濂藉灏卞湪浜庝唬鐮佹竻鏅帮紝缁撴瀯鍒嗘槑锛屾湁鍒╀簬淇敼鍜岀淮鎶ゃ傚鍔犱唬鐮佺殑鍙鎬с傛垜6灞傜殑閮界敤杩囥
  • 鏋舵瀯绫诲瀷浠ュ強杞欢鏋舵瀯閫昏緫璇﹁В
    绛旓細缂虹偣 娑夊強寮傛缂栫▼(瑕佽冭檻杩滅▼閫氫俊銆佸け鍘诲搷搴旂瓑鎯呭喌),寮鍙戠浉瀵瑰鏉傞毦浠ユ敮鎸佸師瀛愭ф搷浣,鍥犱负浜嬩欢閫氳繃浼氭秹鍙婂涓鐞嗗櫒,寰堥毦鍥炴粴鍒嗗竷寮忓拰寮傛鐗规у鑷磋繖涓灦鏋勮緝闅炬祴璇曘 涓夈鍒嗗眰鏋舵瀯銆 鍒嗗眰鏋舵瀯(layered architecture)鏄渶甯歌鐨勮蒋浠舵灦鏋,涔熸槸浜嬪疄涓婄殑鏍囧噯鏋舵瀯銆傚鏋滀綘涓嶇煡閬撹鐢ㄤ粈涔堟灦鏋,閭e氨鐢ㄥ畠銆 杩欑鏋舵瀯灏嗚蒋浠跺垎鎴...
  • 扩展阅读:人员架构图 ... 日常生活分层的例子 ... 三层架构简单讲解 ... 简述三层架构的优缺点 ... 分层教学的七种方法 ... 三层架构图 ... 网络分层架构优缺点 ... 底层逻辑的三大要素 ... 安卓分层架构图 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网