面向对象思想的头脑风暴(三)-使用接口进行解耦

接口有一个非常重要的功能就是解除耦合,我们这里使用一个简单的代码发展过程来帮大家理解接口的这个功能。

首先我们先写一段简单的代码

 

面向对象思想的头脑风暴(三)-使用接口进行解耦代码

 

 

结果为:姓名:lfm,性别:1

我们认为Main函数是界面端,而Employee类是业务逻辑端,简单的代码这样写看起来问题不大,基本可以符合功能要求。

但是假如界面端程序员觉得性别不应该是0,1整数类型,而应该是一个枚举,因为枚举可以更直观,而且有智能感知帮助录入,显然界面端程序员的要求是合理的,但问题是如果业务层是用Linq to sql生成的,而且数据库中就是使用整型存储的,同时底层程序员也不想对数据库进行修改,这时我们可以使用如下方式解决:

 

面向对象思想的头脑风暴(三)-使用接口进行解耦代码

 类结构图如下:

面向对象思想的头脑风暴(三)-使用接口进行解耦

这样就使用接口成功的将界面层和业务层分隔开来做到了业务层和界面层的解耦。同时这样还给我们带来了一个额外的好处,那就是当业务层修改的时候不会影响界面层代码,比方说当数据库中的name改成了EmployeeName,界面端程序员觉得这个更改不合理,所以界面端不想修改,我们可以做如下修改:

 

面向对象思想的头脑风暴(三)-使用接口进行解耦代码

 

 

而前端不用做任何修改。

需求进一步修改:员工表需要存储在数据库中分成两张表,Employee1,Employee2,名字字段在Employee1中,性别字段在Employee2中,修改代码如下:

 

面向对象思想的头脑风暴(三)-使用接口进行解耦代码

 

 类结构图如下:

面向对象思想的头脑风暴(三)-使用接口进行解耦

 

除了工厂稍微做一点修改外,前端不用更改任何代码。

其实这里的例子基本算是适配器模式的一种应用。

 

 

本文转自 你听海是不是在笑 博客园博客,原文链接:http://www.cnblogs.com/nuaalfm/archive/2010/05/12/1733865.html  ,如需转载请自行联系原作者

上一篇:Python脚本使用进度条


下一篇:Microsoft VBScript 运行时错误 错误 '800a0046' 没有权限 解决方法