关于接口存在的意义,之前有一篇帖子讨论过(http://www.iteye.com/post/957921?page=1),并且跟帖无数,我也看过,这里发表一点自己的看法。抛砖引玉。
我的立场是站在spring的依赖注入的角度上来思考这个问题的。个人认为,接口存在的意义只在于接口依赖注入的时候得到淋漓尽致的体现。至于其他时候,作用则并不是那么大了。其理由如下:
1. 在非接口注入的情况下,接口的定义,某种程度上可以理解为对类的一个总的设计,因为其方法并不需要实现,所以可以更多的去思考业务上的逻辑问题,一方面更多心思的去想如何把功能点设计的更加全面,另一方面当我们在实现这个接口的时候,就会受到这个接口的方法定义的约束,这个时候尽可能多的就是考虑如何实现具体的业务的问题,而不用去考虑业务的设计的是否周全的问题。
2. 我的第二点略带否定第一点的意味。如果说只是起一个总领的作用的话,相信当初在设计这个类的时候的UML图里面就已经写的很详细了。即使我不需要这一个接口,我根据我设计完备的UML图,我一样的可以在写类的方法的时候只关注我的类的方法的实现,而不用去考虑类的方法设计是否完备。
3. 在spring的接口注入的时候,这个时候方才体现了接口的优势。我们只调用接口,接口的具体实现可以有一个,也可以有N个,但是具体调用哪一个实现,我们可以动态的根据配置文件,在具体运行的时候再来决定。这就相当于用调用接口,把更多的灵活性留给了以后的开发和维护,以及功能模块的添加。
更多的暂时还没有去想,比较仓促就先写到这里。我先抛出观点。欢迎拍砖。
分享到:
相关推荐
依赖注入(Dependency Injection,简称DI)是一种设计模式,它在软件工程中被广泛应用于解耦组件,提高代码的可测试性和可维护性。在PHP世界里,依赖注入框架可以帮助开发者更方便地管理类之间的依赖关系,减少硬...
4. **接口注入**:除了基于类的依赖注入,Auryn还支持基于接口的注入,这使得代码更加灵活,易于扩展。 5. **回调注入**:如果一个依赖需要通过特定的逻辑生成,你可以提供一个回调函数,Auryn会在需要时调用它来...
- **降低耦合度**:依赖注入允许组件之间通过接口进行通信,而不是直接引用具体的实现类,从而降低了组件之间的耦合度。 - **提高可测试性**:由于依赖可以通过注入的方式传递给组件,因此可以在测试时轻松替换依赖...
在Java开发领域,Spring框架是不可或缺的重要组成部分,它以其强大的依赖注入(Dependency Injection,简称DI)特性而闻名。依赖注入是面向对象设计的一种模式,它允许我们解耦组件之间的依赖关系,使代码更加灵活,...
XML解析在依赖注入中的作用在于,它提供了声明依赖关系的结构化方式。在XML配置文件中,我们可以定义bean及其依赖,Spring框架会读取这些配置并根据指示创建bean实例,建立它们之间的依赖关系。以下是一个简单的XML...
依赖注入的核心在于利用接口的多态性,使类之间可以通过接口来进行交互,而无需知道具体的实现细节。例如,在上述部分内容中提到了一个`Controller`接口: ```as package com.example { public interface ...
接口注入的核心在于接口,它定义了依赖对象的行为。通过定义接口,我们可以确保各个组件之间只依赖于接口,而不是具体的实现。这使得更换或升级组件变得更加简单,只需要改变接口的实现即可,无需修改依赖它的其他...
控制反转(IoC)和依赖注入(DI)是软件设计模式中的重要概念,主要用于降低组件间的耦合度,提高代码的可维护性和可扩展性。IoC的核心思想是将对象的创建和管理交给一个外部容器,而不是由对象自身负责,从而实现...
除了构造函数注入和设值方法注入之外,还有一种不太常见的依赖注入方式称为接口注入。在这种模式下,依赖项通过接口传递,而不是通过构造函数或setter方法。这种方法的优势在于它可以更灵活地处理依赖关系的变化,但...
依赖注入(Dependency Injection,简称DI)是软件设计模式中的一种,它主要解决的是对象之间的依赖关系,使得代码更易于测试和维护。在这个主题下,我们将深入探讨依赖注入的核心概念、实现方式以及它在实际开发中的...
在Java开发中,Spring框架是应用最广泛的IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)容器。它极大地简化了组件之间的依赖管理,提高了代码的可测试性和可维护性。本篇文章将深入...
在Java世界中,Spring框架是应用最广泛的轻量级框架之一,它以其强大的依赖注入(Dependency Injection,简称DI)特性而闻名。依赖注入是面向切面编程(AOP)的一个重要概念,它允许我们解耦组件,使得代码更加灵活...
在Spring中,依赖注入主要通过构造器注入、setter方法注入和接口注入三种方式实现。 1. 构造器注入:通过在类的构造函数中传递依赖对象的实例,Spring会根据配置在XML或注解中的信息创建依赖对象并注入到目标类中。...
2. **定义接口与实现**:为了演示依赖注入,我们先定义一个简单的服务接口`IService`,以及它的实现类`Service`。例如: ```csharp public interface IService { void DoSomething(); } public class ...
Struts、Hibernate和Spring是Java开发中非常流行的三大框架,它们各自在Web应用程序的不同层面上发挥作用:Struts处理MVC模式中的Controller部分,Hibernate负责数据持久化,而Spring则提供了全面的依赖注入...
依赖注入有三种主要方式:构造器注入、setter注入和接口注入。 **Roboguice的工作原理** Roboguice通过扫描应用的注解(Annotations)来识别对象的依赖关系。它在应用程序启动时,会自动注入所有需要的依赖。开发者...
在.NET Core中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它允许开发者将对象的创建和管理从实际的业务逻辑中分离出来,提高了代码的可测试性、可维护性和灵活性。本示例"NetCoreDemo(依赖...
5. **代码解耦**:通过依赖注入,组件之间的耦合度降低,每个组件只需要知道它依赖的接口,而不关心具体的实现。 6. **测试友好**:在单元测试中,可以轻松替换具体依赖,使用模拟(Mocks)或存根(Stubs)来隔离...
依赖注入是一种设计模式,它允许我们解耦代码,通过外部组件将依赖关系传递给一个对象,而不是由该对象自己创建或查找依赖。这样做的好处在于,对象不再直接与特定的实现绑定,而是可以通过配置来改变其依赖关系,...