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

简介:

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

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

 

代码

 

 

结果为:姓名: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  ,如需转载请自行联系原作者

相关文章
|
20天前
|
设计模式 API 数据安全/隐私保护
探索设计模式的魅力:外观模式简化术-隐藏复杂性,提供简洁接口的设计秘密
外观模式是一种关键的设计模式,旨在通过提供一个简洁的接口来简化复杂子系统的访问。其核心价值在于将复杂的内部实现细节封装起来,仅通过一个统一的外观对象与客户端交互,从而降低了系统的使用难度和耦合度。在软件开发中,外观模式的重要性不言而喻。它不仅能够提高代码的可读性、可维护性和可扩展性,还能促进团队间的协作和沟通。此外,随着业务需求和技术的发展,外观模式能够适应变化,通过修改外观对象来灵活调整客户端与子系统之间的交互方式。总之,外观模式在软件设计中扮演着举足轻重的角色,是构建高效、稳定且易于维护的软件系统的关键
65 1
探索设计模式的魅力:外观模式简化术-隐藏复杂性,提供简洁接口的设计秘密
|
20天前
|
设计模式 缓存 安全
探索设计模式的魅力:从单一继承到组合模式-软件设计的演变与未来
组合模式:构建灵活树形结构的艺术。 组合模式旨在解决如何将对象组合成树形结构,隐藏具体实现,使客户端对单个对象和复合对象的使用具有一致性。通过将对象组合成树形结构,组合模式提供了层次化的结构,使系统更灵活、可扩展。 核心思想在于统一叶节点和组合节点。叶节点代表具体的对象,而组合节点则是其他对象的容器。该设计允许我们以统一的方式处理叶子和组合,简化了许多操作。实践中,组合模式适用于具有树形结构并且希望保持结构灵活的系统。它不仅提高了代码的可重用性和可维护性,还使得添加新功能变得简单,无需修改现有代码。...
40 0
|
4月前
|
设计模式
|
8月前
|
设计模式 数据安全/隐私保护
这才是责任链模式的优雅使用方式
首先创建一个实体类Member。
61 0
|
11月前
|
设计模式
【设计模式】【第二章】【业务投放场景】【责任链模式】
【设计模式】【第二章】【业务投放场景】【责任链模式】
118 0
|
12月前
|
消息中间件 JavaScript 小程序
架构设计:为什么说复用是邪恶的?
架构设计:为什么说复用是邪恶的?
|
设计模式 NoSQL Java
被误读的设计模式
被误读的设计模式
84 0
被误读的设计模式
|
设计模式 算法 Java
设计模式的七条原则 适配器模式实现
设计模式的七条原则 适配器模式实现
|
设计模式 uml
设计模式七大原则——合成复用原则
设计模式七大原则——合成复用原则
设计模式七大原则——合成复用原则
|
设计模式 Java 程序员
为什么你总是觉得设计模式很难?
关于设计模式的书不少,网上博客也有很多。那我会想,如果我要写一篇关于设计模式的文章,它给读者带来的价值在哪里呢?如果只是机械地介绍一遍所有的设计模式,那其实没有多大意义。授人以鱼不如授人以渔,今天这篇文章我想探讨更多的,是「如何去认知和学习设计模式」,以及如何才能够真正让它为你所用,成为你编程的神兵利器,披荆斩棘。
387 0