利用构造方法实现模块的解耦
来源:互联网 发布:南京通联数据怎么样 编辑:程序博客网 时间:2024/05/21 05:07
代码之美~利用构造方法实现模块的解耦
阅读次数: 32次 发布时间: 2012-07-20 10:51:16发布人: 张占岭
来源: 网络转载
解耦,不仅只是对程序的扩展性而言,它可能还是你使用你的程序从一个层面向另一个层面提高的基础,请认真对待这个词语“解耦”。
我相信,它将会成为与“SOA”,“分布式”,“云计算”,“KV存储”,“高并发”一样的热门的东西,我确信这点。以后,我将会继续关注这个词语“解耦”。
今天主要是讲”代码之美“的一个话题,利用构造方法使你的对象进行一个可供注入的接口,这就是IOC里面注入的一种方式,即”构造器注入“。
1 /// <summary> 2 /// 统一实体 3 /// </summary> 4 public class EntityBase 5 { 6 7 } 8 /// <summary> 9 /// 统一操作10 /// </summary>11 public interface IRepository12 {13 void Insert(EntityBase entity);14 }15 /// <summary>16 /// 用户操作实现17 /// </summary>18 public class UserRepository : IRepository19 {20 #region IRepository 成员21 22 public void Insert(EntityBase entity)23 {24 throw new NotImplementedException();25 }26 27 #endregion28 }
而在构造方法去使用它的时候,一般代码是这样:
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对象的松耦合,这使得它具有通用的特性,一般我们在设计通用功能时,经理使用这样方式。
- 利用构造方法实现模块的解耦
- 利用python实现对鼠标的移动点击操作(PyMouse 模块安装方法)
- string类中,利用构造方法,实现实例化
- Java的静态块、模块、构造方法的执行顺序
- Java的静态块、模块、构造方法的执行顺序
- Java的静态块、模块、构造方法的执行顺序
- node.js利用javascript中构造函数继承,实现模块调用
- Hadoop的构造模块
- oracle 利用connect by构造重复资料的方法
- 实现带有构造方法的枚举
- 便利构造器方法实现的三步走
- VBS 利用Default 关键字来 实现构造函数的功能
- 多重邻接表的复制:利用拷贝构造函数实现
- Android实现应用自动更新的方法模块
- 利用apache的mod_headers模块实现文件缓存
- Flex 利用ActionScript接口实现Module模块间的数据通信
- 利用setuptools的entry_point参数实现模块动态导入
- 利用MySQLdb模块实现对数据库的简单操作
- 合并两个有序链表
- SVN服务端的备份还原
- Android Bitmap和Canvas学习笔记
- 不同中寻找相同 之 T-SQL语言设计基础与 vb语言设计基础
- JS刷新当前页面
- 利用构造方法实现模块的解耦
- ORACLE批量绑定FORALL与BULK COLLECT
- TortoiseSVN中Branching和Merging实践
- flash 入门课知识小结
- 根据Html解析得到url和内容
- java的JDBC应用技巧
- (Matrix67)十个利用矩阵乘法解决的经典题目
- 在.net中,控制台项目—(对控制台的进一步应用)
- C# Excel 行高,列宽,合并单元格,单元格边框线,冻结