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

简介:

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

我相信,它将会成为与“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对象的松耦合,这使得它具有通用的特性,一般我们在设计通用功能时,经理使用这样方式。

本文转自博客园张占岭(仓储大叔)的博客,原文链接:代码之美~利用构造方法实现模块的解耦,如需转载请自行联系原博主。

目录
相关文章
|
6月前
|
设计模式 Java
重构你的代码:探索Java中的混合、装饰器与组合设计模式
【8月更文挑战第30天】在软件开发中,设计模式为特定问题提供了结构化的解决方案,使代码更易理解、维护及扩展。本文将介绍三种常用的 Java 设计模式:混合模式、装饰器模式与组合模式,并附有示例代码展示实际应用。混合模式允许通过继承多个接口或抽象类实现多重继承;装饰器模式可在不改变对象结构的情况下动态添加新功能;组合模式则通过树形结构表示部分-整体层次,确保客户端处理单个对象与组合对象时具有一致性。
64 1
|
9月前
|
设计模式 JavaScript 前端开发
[设计模式Java实现附plantuml源码~创建型] 复杂对象的组装与创建——建造者模式
[设计模式Java实现附plantuml源码~创建型] 复杂对象的组装与创建——建造者模式
|
9月前
|
设计模式 存储 SQL
第四篇 行为型设计模式 - 灵活定义对象间交互
第四篇 行为型设计模式 - 灵活定义对象间交互
151 0
|
9月前
|
设计模式
二十三种设计模式全面解析-建造者模式:构建完美对象的秘密武器
二十三种设计模式全面解析-建造者模式:构建完美对象的秘密武器
|
9月前
|
设计模式
二十三种设计模式全面解析-组合模式与装饰器模式的结合:实现动态功能扩展
二十三种设计模式全面解析-组合模式与装饰器模式的结合:实现动态功能扩展
118 0
|
设计模式 Java
JAVA设计模式5:建造者模式,将对象的构建过程与其表示分离
JAVA设计模式5:建造者模式,将对象的构建过程与其表示分离
130 0
|
NoSQL Redis
如何用最简单的方式解释依赖注入?依赖注入是如何实现解耦的?
如何用最简单的方式解释依赖注入?依赖注入是如何实现解耦的?
82 0
|
设计模式 Java
【Java设计模式 面向对象设计思想】五 多用组合少用继承编程
【Java设计模式 面向对象设计思想】五 多用组合少用继承编程
264 0
【Java设计模式 面向对象设计思想】五 多用组合少用继承编程
|
设计模式 存储 安全
【Java设计模式 面向对象设计思想】一 再谈面向对象和封装、抽象、继承、多态四大特性
【Java设计模式 面向对象设计思想】一 再谈面向对象和封装、抽象、继承、多态四大特性
112 0
|
设计模式 JSON 数据格式
【工作中问题解决实践 六】基于反射及类装饰模式的数据对比框架(上)
【工作中问题解决实践 六】基于反射及类装饰模式的数据对比框架(上)
122 0