- 浏览: 781105 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (573)
- Java基础 (76)
- C++基础 (5)
- hibernate (5)
- struts (4)
- spring (1)
- webservice (7)
- AjaX基础 (0)
- JS脚本 (53)
- 正则表达式 (5)
- html脚本 (30)
- 数据库基础 (54)
- 工作相关 (49)
- 其他 (30)
- Linux (9)
- web服务器 (17)
- JSP (13)
- eclipse (6)
- 面试题相关 (20)
- XML (3)
- Apache common (2)
- 生活 (35)
- VMware (1)
- log4j (9)
- BeanUtils (2)
- 设计模式 (3)
- UML (1)
- UNIX (1)
- ibats (5)
- GT-Grid (17)
- ABAP学习 (17)
- ABAP (35)
- ABAP--ALV (11)
- ABAP--WEBDIMPRO (0)
- abap-sample (1)
- BEMS (2)
- flex (33)
- GIS技术 (3)
最新评论
在项目中的意义:
在传统的项目开发过程中,由于客户的需求经常变化,如果不采用面向接口编程,那么我们必须不停改写现有的业务代码。改写代码可能产生新的BUG,而且改写代码还会影响到调用该业务的类,可能全都需要修改,影响系统本身的稳定性。而且为了将改写代码带来的影响最小,我们不得不屈服当前的系统状况来完成设计,代码质量和稳定性更低。当这种情况积累到一定程度时,系统就会出现不可预计的错误,代码凌乱,不易读懂,后接手的人无法读懂代码,系统的维护工作越来越重,最终可能导致项目失败。
接口在项目就是一个业务逻辑,面向接口编程就是先把客户的业务提取出来,作为接口。业务具体实现通过该接口的实现类来完成。当客户需求变化时,只需编写该业务逻辑的新的实现类,通过更改配置文件(例如Spring框架)中该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。
采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。即使更换一批人员,新来的人依然可以快速上手。对于公司来说,意义更大。
在Java中的意义:
Java本身也是一个不断完善的语言,他也在频繁的改动他的系统API来完善,他的API是一个庞大的体系,互相关联,如果不采用接口,而都是用实现类的话,那么API的改动就会给整个体系带来不稳定。而且如果改动API,那么就会有大量采用旧API的项目因无法正常运行,会损失大量客户。换句话说,JDK已经发布的API是一种承诺,一经发布就不能更改,即使原来API存在各种各样的问题(例如java.util.Properties类就是一个失败的例子)也必须保留,于是在Java里就出现了不建议使用的方法,但JDK依然提供该方法。而且Java语言本身是一个跨平台的语言,为了满足在各个平台下运行,就必须把各种操作做成接口,在编写各个平台下的实现类。
设计模式的体现:
在设计模式的原则里的开闭原则,其实就是要使用接口来实现对扩展开放,对修改关闭。在设计模式的其他原则里也有关于基于接口编程的原则,即依赖倒转的设计原则(DIP)----高层模块不应该依赖于底层模块。二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象(注:来自《敏捷软件开发--原则、模式与实践》Robert C.Martin著)。在使用面向接口的编程过程中,将具体逻辑与实现分开,减少了各个类之间的相互依赖,当各个类变化时,不需要对已经编写的系统进行改动,添加新的实现类就可以了,不在担心新改动的类对系统的其他模块造成影响。
编程也是一门艺术,在C语言中灵活的使用指针是一门艺术,在面对对象的程序中,灵活的使用接口也是一门艺术。现在项目中,功能越来越复杂,只设计了完美的类,对于整个系统来说没有多大意义,现在的项目更注重各个功能模块的整合及可维护性,接口的设计就显得更为重要了。程序设计不再是设计类的具体实现,而是从整个项目出发,设计出可扩展性强的接口。当你发现越来越灵活的使用接口时,那么你就从程序员升级为架构师了。可惜我现在依然是一名程序员,正在像架构师努力。
在一些大型项目或者大型公司里,都是由架构师编写出系统接口,具体的实现类交给了程序员编写,公司越大这种情况越明显,所以在这些公司里做开发,我们可能都不知道编写出的系统是个什么样子,每天做的工作可能就是做“填空题”了。建议大家阅读敏《捷软件开发--原则、模式与实践》Robert C.Martin著这本书,那么对如何进行接口编程就会有一个新的认识了。
最后,希望大家都能成为一个优秀的系统架构师。
我记得我曾经在一篇帖子中提到过,一个接口可以从三方面去考察:
制定者(或者叫协调者),实现者(或者叫生产者),调用者(或者叫消费者)。
接口本质上就是由制定者来协调实现者和调用者之间的关系。
所以通常说的“面向接口编程”可以理解为:
只有实现者和调用者都遵循“面向接口编程”这个准则,制定者的协调目的才能达到。
一个老生常谈的例子就是JDBC。
优点:
接口和实现分离了,适于团队的协作开发。
更具体的优点:可以参看IDP原则。
缺点:
设计难了,在你没有写实现的时候,就得想好接口,接口一变,全部乱套,这就是所谓的设计比实现难。
所以设计接口的人工资都高啊!!!
在传统的项目开发过程中,由于客户的需求经常变化,如果不采用面向接口编程,那么我们必须不停改写现有的业务代码。改写代码可能产生新的BUG,而且改写代码还会影响到调用该业务的类,可能全都需要修改,影响系统本身的稳定性。而且为了将改写代码带来的影响最小,我们不得不屈服当前的系统状况来完成设计,代码质量和稳定性更低。当这种情况积累到一定程度时,系统就会出现不可预计的错误,代码凌乱,不易读懂,后接手的人无法读懂代码,系统的维护工作越来越重,最终可能导致项目失败。
接口在项目就是一个业务逻辑,面向接口编程就是先把客户的业务提取出来,作为接口。业务具体实现通过该接口的实现类来完成。当客户需求变化时,只需编写该业务逻辑的新的实现类,通过更改配置文件(例如Spring框架)中该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。
采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。即使更换一批人员,新来的人依然可以快速上手。对于公司来说,意义更大。
在Java中的意义:
Java本身也是一个不断完善的语言,他也在频繁的改动他的系统API来完善,他的API是一个庞大的体系,互相关联,如果不采用接口,而都是用实现类的话,那么API的改动就会给整个体系带来不稳定。而且如果改动API,那么就会有大量采用旧API的项目因无法正常运行,会损失大量客户。换句话说,JDK已经发布的API是一种承诺,一经发布就不能更改,即使原来API存在各种各样的问题(例如java.util.Properties类就是一个失败的例子)也必须保留,于是在Java里就出现了不建议使用的方法,但JDK依然提供该方法。而且Java语言本身是一个跨平台的语言,为了满足在各个平台下运行,就必须把各种操作做成接口,在编写各个平台下的实现类。
设计模式的体现:
在设计模式的原则里的开闭原则,其实就是要使用接口来实现对扩展开放,对修改关闭。在设计模式的其他原则里也有关于基于接口编程的原则,即依赖倒转的设计原则(DIP)----高层模块不应该依赖于底层模块。二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象(注:来自《敏捷软件开发--原则、模式与实践》Robert C.Martin著)。在使用面向接口的编程过程中,将具体逻辑与实现分开,减少了各个类之间的相互依赖,当各个类变化时,不需要对已经编写的系统进行改动,添加新的实现类就可以了,不在担心新改动的类对系统的其他模块造成影响。
编程也是一门艺术,在C语言中灵活的使用指针是一门艺术,在面对对象的程序中,灵活的使用接口也是一门艺术。现在项目中,功能越来越复杂,只设计了完美的类,对于整个系统来说没有多大意义,现在的项目更注重各个功能模块的整合及可维护性,接口的设计就显得更为重要了。程序设计不再是设计类的具体实现,而是从整个项目出发,设计出可扩展性强的接口。当你发现越来越灵活的使用接口时,那么你就从程序员升级为架构师了。可惜我现在依然是一名程序员,正在像架构师努力。
在一些大型项目或者大型公司里,都是由架构师编写出系统接口,具体的实现类交给了程序员编写,公司越大这种情况越明显,所以在这些公司里做开发,我们可能都不知道编写出的系统是个什么样子,每天做的工作可能就是做“填空题”了。建议大家阅读敏《捷软件开发--原则、模式与实践》Robert C.Martin著这本书,那么对如何进行接口编程就会有一个新的认识了。
最后,希望大家都能成为一个优秀的系统架构师。
我记得我曾经在一篇帖子中提到过,一个接口可以从三方面去考察:
制定者(或者叫协调者),实现者(或者叫生产者),调用者(或者叫消费者)。
接口本质上就是由制定者来协调实现者和调用者之间的关系。
所以通常说的“面向接口编程”可以理解为:
只有实现者和调用者都遵循“面向接口编程”这个准则,制定者的协调目的才能达到。
一个老生常谈的例子就是JDBC。
优点:
接口和实现分离了,适于团队的协作开发。
更具体的优点:可以参看IDP原则。
缺点:
设计难了,在你没有写实现的时候,就得想好接口,接口一变,全部乱套,这就是所谓的设计比实现难。
所以设计接口的人工资都高啊!!!
发表评论
-
线程的数量控制
2012-06-14 13:34 962在编程中,往往都需要采用线程来提高速度,但线程并不是越多越好。 ... -
Servlet生命周期与工作原理
2012-06-14 13:28 855Servlet生命周期分为三个 ... -
Java中堆和栈的区别
2012-03-09 11:10 758栈与堆都是Java用来在Ram ... -
Collection 和 Map接口及其实现类总结
2012-03-09 11:09 994Collection接口 Collection是 ... -
HTTP状态码
2012-01-30 15:18 1240常见的状态码: HTTP: Status 200 – 服务 ... -
Flex错误码列表
2012-01-30 15:13 1261在 ActionScript 3.0 中,无论是在严谨模式下还 ... -
Java性能优化技巧集锦
2011-12-26 10:04 779一、通用篇 1.1 不用new关键词创建类的实例 1.2 ... -
java Web 项目优化的几个小方法
2011-12-26 10:02 13171.用Hibernate操作数据库时一定要本着用多少取多少的原 ... -
总结几点数据库效率优化方面应该注意的问题
2011-12-26 10:01 8381、 避免使用Hibernate框架 用Hiberna ... -
转载的一篇关于如何优化JAVA代码及提高效率的文章
2011-12-09 16:51 886可供程序利用的资源( ... -
Java获取IP地址:request.getRemoteAddr()警惕
2011-12-08 11:15 1111项目中需要和第三方平台接口,加了来源IP鉴权功能,测试时发现没 ... -
jsp 统计在线人数
2011-12-06 09:23 960首先写个类: import javax.s ... -
Java邮件开发源代码
2010-11-11 07:43 1043Java邮件开发源代码Java邮件开发源代码Java邮件开发源 ... -
Windows下的Mapserver——MS4W安装注意事项
2010-07-29 19:30 24911\MS4W文件夹一定要放在磁盘根目录下; 2,运行apac ... -
Java读取桌面路径的方法
2010-04-20 20:53 1288今天在写程序时需要读取桌面的路径,开始时以为需要使用JNI来 ... -
date 转换
2009-12-18 16:27 682import java.text.ParseException ... -
String indexOf substring
2009-12-18 16:26 1927public class TestString { ... -
Calendar,Date,long(Millis)转换
2009-12-18 16:23 1997//Calendar与Date、long的转换: ... -
String split()
2009-12-18 16:15 1161String split() 如字符串:http://www. ... -
String编码转换
2009-12-17 12:09 3263String newStr = new String(oldS ...
相关推荐
面向接口编程的好处在于: 1. **可扩展性**:当需要添加新功能时,只需创建新的实现类并实现接口,而无需修改现有代码。 2. **松耦合**:接口调用者与实现者之间通过接口连接,两者之间不必了解对方的实现细节,降低...
### Java语言:什么叫面向接口编程 #### 接口的基本概念 在Java编程中,接口(Interface)是一种重要的抽象数据类型,它定义了一组方法签名,这些方法由实现该接口的类来具体实现。接口可以看作是一种契约或者协议...
下面将详细介绍面向接口编程的概念、好处以及如何在实践中应用。 首先,理解什么是接口。在面向对象编程(OOP)中,接口是一种规范,定义了一组方法的签名,但不提供具体实现。类可以实现一个或多个接口,从而承诺...
面向接口编程是面向对象编程中的一个重要概念,它并非与面向对象编程平级,而是面向对象思想的精华之一。本文将详细解释面向接口编程的思想基础。 首先,我们需要理解接口的定义和本质。接口在编程中是一个包含一...
本项目以"Spring_依赖注入_面向接口编程_不同加载方式"为主题,旨在帮助初学者理解Spring的核心特性——依赖注入(Dependency Injection,简称DI),以及如何通过面向接口编程来提高代码的可维护性和可扩展性。...
在这个例子中,我们将深入探讨工厂模式的应用及其与面向接口编程的关系。 首先,工厂模式有三种主要的形式:简单工厂模式、工厂方法模式和抽象工厂模式。简单工厂模式中,有一个中心工厂类负责创建所有实例;工厂...
本项目通过实际示例,帮助初学者理解Spring中的依赖注入和面向接口编程。 依赖注入(DI)是Spring框架的核心特性之一,它允许我们把对象的依赖关系从代码中解耦出来,转而由Spring容器来管理。在传统的编程模式中,...
在实际项目开发中,面向接口编程可以带来许多好处,例如: * 降低耦合度:使用接口可以降低耦合度,因为不同的类之间不需要直接相互依赖。 * 提高代码灵活性:使用接口可以提高代码灵活性,因为我们可以轻松地更换...
在软件设计领域,依赖倒置、控制反转、依赖注入以及面向接口编程是四个非常重要的概念,它们都是现代软件开发中的核心原则,特别是对于构建可扩展、可维护的系统至关重要。 首先,我们来深入理解一下“依赖倒置”...
在本文中,我们将深入探讨基于MVC架构的权限设计,特别是在使用依赖接口编程技术的上下文中。MVC(Model-View-Controller)模式是软件工程中广泛采用的设计模式,尤其适用于构建Web应用程序。它将应用逻辑划分为三个...
在IT行业中,面向抽象或接口编程是一种非常重要的设计原则,它强调了程序设计时应将具体实现细节与高层逻辑解耦。Spring框架是Java领域中广泛使用的轻量级框架,它充分利用了面向抽象编程的优势,提供了强大的依赖...
一、Matlab与VB接口编程的含义和重要性 Matlab(Matrix Laboratory的缩写)是一种基于矩阵运算的高级编程语言,具备强大的数据处理和分析功能,尤其在数值计算、算法开发和图形处理方面具有明显优势。VB(Visual ...
在本文中,我们将探讨面向接口编程的概念、接口的本质、面向接口编程的思想内涵、面向接口编程的好处等方面。 一、面向接口编程和面向对象编程的关系 面向接口编程和面向对象编程并不是平级的,而是面向对象编程的...
面向接口编程则是另一种核心原则,它提倡设计时定义抽象接口,而具体的实现则由依赖的类提供。这两者在Spring Boot中的结合,使得应用程序更加灵活和可扩展。 控制反转在Spring框架中主要通过依赖注入(Dependency ...
本文将深入探讨该框架的核心概念,包括MVC架构、面向接口编程、AOP(面向切面编程)、三层架构以及实体框架(Entity Framework)和Lambda表达式、工厂模式的应用。 首先,MVC(Model-View-Controller)模式是一种...
面向接口编程是软件设计中的一个重要概念,特别是在面向对象编程中,它强调了程序设计应依赖于接口而不是具体的实现。PHP作为一门支持面向对象特性的语言,同样可以利用接口(Interface)来实现这一设计理念。 在...
面向接口编程是面向对象编程中的一个重要概念,它强调程序应依赖于抽象,而不是具体的实现。在Java中,接口(Interface)就是这种抽象的一种体现。Java接口允许类实现多个接口,从而实现了多继承,解决了Java中类...
本文将深入探讨C#接口的使用及其带来的好处。 首先,接口提供了多态性。多态性是面向对象编程中的一个重要特性,它允许不同类型的对象以相同的方式进行操作。在C#中,一个类可以实现多个接口,这就意味着该类可以...