代码之美:利用构造方法实现模块的解耦

开发 架构 后端
解耦,不仅只是对程序的扩展性而言,它可能还是你使用你的程序从一个层面向另一个层面提高的基础,请认真对待这个词语“解耦”。下面我们通过几段代码来解答“解耦”……

解耦,不仅只是对程序的扩展性而言,它可能还是你使用你的程序从一个层面向另一个层面提高的基础,请认真对待这个词语“解耦”。

我相信,它将会成为与“SOA”,“分布式”,“云计算”,“KV存储”,“高并发”一样的热门的东西,我确信这点。以后,我将会继续关注这个词语“解耦”。

今天主要是讲”代码之美“的一个话题,利用构造方法使你的对象进行一个可供注入的接口,这就是IOC里面注入的一种方式,即”构造器注入“。

  1. /// <summary>  
  2.      /// 统一实体  
  3.      /// </summary>  
  4.      public class EntityBase  
  5.      {  
  6.    
  7.      }  
  8.      /// <summary>  
  9.      /// 统一操作  
  10.      /// </summary>  
  11.      public  interface IRepository  
  12.      {  
  13.          void Insert(EntityBase entity);  
  14.      }  
  15.      /// <summary>  
  16.      /// 用户操作实现  
  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.      } 

而在构造方法去使用它的时候,一般代码是这样:

  1. public abstract class IndexFileBase  
  2.      {  
  3.          IRepository _iRepository;  
  4.          public IndexFileBase(IRepository iRepository)  
  5.          {  
  6.              _iRepository = iRepository;  
  7.          }  
  8.    
  9.          /// <summary>  
  10.          /// 根据实现IRepository接口的不同,Insert逻辑也是多样的  
  11.          /// </summary>  
  12.          /// <param name="entity"></param>  
  13.          public void Insert(EntityBase entity)  
  14.          {  
  15.              this._iRepository.Insert(entity);  
  16.          } 

上面的代码,很好的实现了new对象的松耦合,这使得它具有通用的特性,一般我们在设计通用功能时,经理使用这样方式。

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

责任编辑:林师授 来源: 张占岭的博客
相关推荐

2012-07-10 01:51:43

代码架构设计

2024-12-05 09:13:55

Go项目模块

2022-09-02 08:23:12

软件开发解耦架构

2018-04-18 08:47:17

Alluxio构建存储

2024-03-08 16:27:22

领域事件DDD项目跨层解耦

2024-09-29 09:58:57

2020-11-20 15:22:32

架构运维技术

2016-11-30 15:30:42

架构工具和方案

2013-09-16 10:19:08

htmlcssJavaScript

2022-08-10 06:52:28

RabbitMQ消息中间件

2022-08-08 20:48:09

MQ消息中间件系统解耦

2022-08-08 20:46:26

架构高并发

2021-03-10 05:50:06

IOCReact解耦组件

2017-11-15 09:32:27

解耦战术架构

2022-07-13 08:36:57

MQ架构设计模式

2019-06-20 10:23:23

架构代码前端

2022-04-15 11:46:09

轻量系统解耦鸿蒙操作系统

2021-06-01 09:38:19

消息队列核心系统下游系统

2022-05-25 11:56:05

架构软硬件技术

2017-12-26 15:52:31

MQ互联网耦合
点赞
收藏

51CTO技术栈公众号