面向接口的编程
来源:互联网 发布:手机淘宝积分怎么看 编辑:程序博客网 时间:2024/04/30 04:59
很久就想写这篇文章了,一直没有提笔,主要是怕自己把握得不好,毕竟,“面向接口”这个主题既有思想层面上的内涵韵味,也有具体实现上的操作技巧。
这篇文章也就从这两个方面来谈吧:1 面向接口的思想;2 面向接口的实现。
1 面向接口的思想
Interface,这个词可以说是被我们用烂了的一个词,它大概是在软件设计开发整个过程中听得最多的一个词之一,尽管在不同场合其具体所指不同,然而,所有的“接口”都具有相同的特征:对外的一种暴露。我不知道说“暴露”这个词,你是否还是觉得有点不好听,那么就用“提供”这个词吧。举个例子吧,我们电脑的主机,被机箱盒给封装了起来,然后向我们提供电源按钮让我们开启机器,提供USB插口让我们连接U盘,提供网线插口,让我们连接网络,提供显示器连接插口,让我们连接显示器......这些插口,都是主机暴露给我们的接口,这些硬件接口给了我们操作主机的能力。试想,如果主机什么都不暴露,那主机就成为了一个完全封闭的东西,而一个封闭的东西与一堆垃圾一样毫无意义。
从马哲的角度上来说上面这段话的意思就是任何东西都需要对外暴露“接口”来与其他东西发生联系,一个孤立的东西是没有存在价值和意义的。那么如何暴露接口呢?
在企业管理,尤其是市场营销这一领域,我们常听到一个词:“面向客户”,在软件开发中同样如此。是的,我们之所以提供接口,目的是让“客户程序”(不管是你自己写,还是别人写的)来使用自己所写的程序。我们总是在谈组件化,组件化的本质就是将自身逻辑封装,让后对外暴露接口,组件的价值就在其暴露的接口是否有价值。在面向过程编程中,函数的声明是其对外提供的接口,文件的导入是为了对别人提供的接口的调用,文件的导出是为了对别人提供接口;在面向对象编程中,对象的非私有方法是对不同级别的对象的接口暴露。
面向接口不象面向过程,面向对象那么直接明显,因为它是一种理念上的东西,高于面向过程,面向对象,又体现于这些编程方法中,这主要是有开发者自身去把握,是“无用”,又是“大用”。
2 面向接口的实现
具体的实现技巧我并不打算在这里涉及,因为不同的编程语言,不同的场合,其选择也不同,下面从通用层面上来讲,看看如何实现面向接口的编程。
下面这个链接是我一个面向接口编程的概念图:
http://dl2.csdn.net/down4/20070730/30084300437.jpg
在这个模型当中,可以分为三横三纵:横向代表层次,纵向代表功能。从横向来看,分为接口层,逻辑层,资源层。接口层是你对外暴露的接口的集合,比如你的类中的一个个公共成员,接口层对业务逻辑层的封装,提供给外界使用业务逻辑层的能力;逻辑层,也就是对自身业务逻辑实现的功能集,逻辑层对资源层进行调用,在实现自身业务逻辑的同时,也完成了对资源层的屏蔽,也就是说,实现了对资源层的封装;资源层,内容比较广泛,可以是别人提供的组件,也可以是诸如ADO.NET,Jdbc这样的数据资源访问层,但说白了,资源层还是别人提供给你的一些接口。
- 面向接口 的编程
- 面向接口的编程
- 面向接口的编程
- 面向接口的编程
- 面向接口的编程思想
- 面向接口编程的好处
- 面向接口编程的作用
- 面向抽象(接口)的编程
- 面向接口编程的理解
- 面向接口编程的优点
- 面向接口编程的好处
- 面向接口编程的点
- 面向接口编程的好处
- 面向接口编程的好处
- 面向接口编程的好处
- 面向接口编程的意义
- 面向接口编程的好处
- 面向接口编程的优点
- c#中的Delegate解析
- 试验网站#3搜索引擎优化收录情况记录2007-7-28
- asp.net页面间数据传递
- 用C/C++语言开发大规模FPGA
- Java事件模型
- 面向接口的编程
- 对初学者的建议:ASP.NET技术的学习顺序
- 在SQL Server 中查询Excel表
- EDA工具
- FPGA/CPLD数字电路设计经验分享
- visual studio.net已检测到指定的web服务器运行的不是asp.net1.1版
- 实现业务系统中的用户权限管理--设计篇
- 帮美女老婆收集基金行情 Java程序
- 转贴():我是一名高素质的大学生