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

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

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

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

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

/// <summary>  
     /// 统一实体  
     /// </summary>  
     public class EntityBase  
     {  
   
     }  
     /// <summary>  
     /// 统一操作  
     /// </summary>  
     public  interface IRepository  
     {  
         void Insert(EntityBase entity);  
     }  
     /// <summary>  
     /// 用户操作实现  
     /// </summary>  
     public class UserRepository : IRepository  
     {  
         #region IRepository 成员  
   
         public void Insert(EntityBase entity)  
         {  
             throw new NotImplementedException();  
         }  
   
         #endregion  
     } 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.

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

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

架构运维技术

2013-09-16 10:19:08

htmlcssJavaScript

2016-11-30 15:30:42

架构工具和方案

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技术栈公众号