自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

代碼之美:利用構(gòu)造方法實(shí)現(xiàn)模塊的解耦

開(kāi)發(fā) 架構(gòu) 后端
解耦,不僅只是對(duì)程序的擴(kuò)展性而言,它可能還是你使用你的程序從一個(gè)層面向另一個(gè)層面提高的基礎(chǔ),請(qǐng)認(rèn)真對(duì)待這個(gè)詞語(yǔ)“解耦”。下面我們通過(guò)幾段代碼來(lái)解答“解耦”……

解耦,不僅只是對(duì)程序的擴(kuò)展性而言,它可能還是你使用你的程序從一個(gè)層面向另一個(gè)層面提高的基礎(chǔ),請(qǐng)認(rèn)真對(duì)待這個(gè)詞語(yǔ)“解耦”。

我相信,它將會(huì)成為與“SOA”,“分布式”,“云計(jì)算”,“KV存儲(chǔ)”,“高并發(fā)”一樣的熱門(mén)的東西,我確信這點(diǎn)。以后,我將會(huì)繼續(xù)關(guān)注這個(gè)詞語(yǔ)“解耦”。

今天主要是講”代碼之美“的一個(gè)話題,利用構(gòu)造方法使你的對(duì)象進(jìn)行一個(gè)可供注入的接口,這就是IOC里面注入的一種方式,即”構(gòu)造器注入“。

  1. /// <summary>  
  2.      /// 統(tǒng)一實(shí)體  
  3.      /// </summary>  
  4.      public class EntityBase  
  5.      {  
  6.    
  7.      }  
  8.      /// <summary>  
  9.      /// 統(tǒng)一操作  
  10.      /// </summary>  
  11.      public  interface IRepository  
  12.      {  
  13.          void Insert(EntityBase entity);  
  14.      }  
  15.      /// <summary>  
  16.      /// 用戶(hù)操作實(shí)現(xiàn)  
  17.      /// </summary>  
  18.      public class UserRepository : IRepository  
  19.      {  
  20.          #region IRepository 成員  
  21.    
  22.          public void Insert(EntityBase entity)  
  23.          {  
  24.              throw new NotImplementedException();  
  25.          }  
  26.    
  27.          #endregion  
  28.      } 

而在構(gòu)造方法去使用它的時(shí)候,一般代碼是這樣:

  1. public abstract class IndexFileBase  
  2.      {  
  3.          IRepository _iRepository;  
  4.          public IndexFileBase(IRepository iRepository)  
  5.          {  
  6.              _iRepository = iRepository;  
  7.          }  
  8.    
  9.          /// <summary>  
  10.          /// 根據(jù)實(shí)現(xiàn)IRepository接口的不同,Insert邏輯也是多樣的  
  11.          /// </summary>  
  12.          /// <param name="entity"></param>  
  13.          public void Insert(EntityBase entity)  
  14.          {  
  15.              this._iRepository.Insert(entity);  
  16.          } 

上面的代碼,很好的實(shí)現(xiàn)了new對(duì)象的松耦合,這使得它具有通用的特性,一般我們?cè)谠O(shè)計(jì)通用功能時(shí),經(jīng)理使用這樣方式。

原文鏈接:http://www.cnblogs.com/lori/archive/2012/07/09/2582940.html

責(zé)任編輯:林師授 來(lái)源: 張占嶺的博客
相關(guān)推薦

2012-07-10 01:51:43

代碼架構(gòu)設(shè)計(jì)

2024-12-05 09:13:55

Go項(xiàng)目模塊

2022-09-02 08:23:12

軟件開(kāi)發(fā)解耦架構(gòu)

2018-04-18 08:47:17

Alluxio構(gòu)建存儲(chǔ)

2024-03-08 16:27:22

領(lǐng)域事件DDD項(xiàng)目跨層解耦

2024-09-29 09:58:57

2020-11-20 15:22:32

架構(gòu)運(yùn)維技術(shù)

2013-09-16 10:19:08

htmlcssJavaScript

2016-11-30 15:30:42

架構(gòu)工具和方案

2022-08-08 20:46:26

架構(gòu)高并發(fā)

2022-08-10 06:52:28

RabbitMQ消息中間件

2022-08-08 20:48:09

MQ消息中間件系統(tǒng)解耦

2021-03-10 05:50:06

IOCReact解耦組件

2017-11-15 09:32:27

解耦戰(zhàn)術(shù)架構(gòu)

2022-07-13 08:36:57

MQ架構(gòu)設(shè)計(jì)模式

2019-06-20 10:23:23

架構(gòu)代碼前端

2022-04-15 11:46:09

輕量系統(tǒng)解耦鴻蒙操作系統(tǒng)

2021-06-01 09:38:19

消息隊(duì)列核心系統(tǒng)下游系統(tǒng)

2022-05-25 11:56:05

架構(gòu)軟硬件技術(shù)

2017-12-26 15:52:31

MQ互聯(lián)網(wǎng)耦合
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)