`

依赖注入模式

阅读更多

      上升到企业级编程的时候,总会听到有人在谈论编程模式之类的话语,在没接触之前确实被忽悠得晕头晕脑的,也许正如马云说的,百分之九十的知识是拿来忽悠人的,不过肯定是忽悠不懂的人咯。好了,转如正题,谈谈本人对编程模式的一点看法吧,主要针对依赖注入模式。

   

      依赖注入,简单点说就是采用分离逻辑层与显示层的基本思想来设计代码结构,一种普遍的方法是利用接口作中间人,然后具体实现类去实现接口,交给他人使用时具体实现类的代码细节并不公开,使用者只须知道调用哪个方法可以获得他想要的服务即可。另一种方法是利用构造器实现对象注入,在交付他人使用的类的构造器中传入具体服务的实现类的实例对象,并保存相关信息。还可以使用设值传入,通过传入的参数去创建服务实例对象。

     

      无论是利用接口还是构造器去接收参数和构造子,目的都是为了让提供给他人使用的接口或类具有通用性以及尽量降低使用类与具体服务实现类的耦合度,从而实现代码的可扩展和可重用。对于专业术语上说的Dependency Injection和Service Locator模式,就我理解是这个意思,而设值注入与构造子注入也就对应于我所理解的传参数还是传对象的意思。具体的思维模式本人觉得还是写写代码更好理解一些,用文字表达的总是太过抽象,比较难以理解,以下是我的代码测试。

public interface Study {
	public void study();
	
}
//Study接口

public class College_student implements Study{

	//声明只占一个实例对象
	private static College_student cs;

	//实现接口方法
	public void study() {
		System.out.println("I'm a college student.");
		
	}
	//声明私有化构造器,不允许外界创建对象
	//private College_student(){}
	

	public static Study GetCollege_student(String s){
		if(s=="College"){
			cs = new College_student();//创建一个实例
			System.out.println("我是传值创建的");
			return cs;
		}
		return null;
	}
	//返回一个对象实例
	public static Study GetCollege_student(){
		cs = new College_student();//创建一个实例
		return cs;
	}
}
//College_student类,实现了Study接口

public class Main_test {

	/**
	 * @param 测试接口知识
	 */
	public static void main(String[] args) {
		Study cs = new Study() {
			
			@Override
			public void study() {
				System.out.println("haha");
			}
		};//内部类,即实现一个接口,将它当成实现类使用
		Study cs1 = College_student.GetCollege_student();
		Study cs2 = College_student.GetCollege_student("College");
		cs.study();
		cs1.study();
		cs2.study();
	}
}
//主函数

 

分享到:
评论

相关推荐

    依赖注入那些事儿

    - **Unity**:Unity是一个由Microsoft开发的轻量级IoC Container,支持多种依赖注入模式,易于集成到.NET项目中。 综上所述,依赖注入作为一种设计模式,对于构建灵活、可维护的软件系统至关重要。通过合理的使用...

    C++ 依赖注入

    C++依赖注入是一种设计模式,它对于简化软件设计、控制依赖关系、降低耦合度、提高代码的内聚度以及方便进行单元测试具有重要作用。依赖注入的核心思想是将依赖对象的创建和使用分离,通过第三方(例如容器)在对象...

    【Java设计模式-源码】依赖注入模式:通过松耦合提升可维护性

    依赖注入设计模式的目的是将对象依赖的创建与其使用解耦,从而实现更灵活和可测试的代码。 ## 二、详细解释及实际示例 1. **实际示例**: - 想象一家高档餐厅,厨师需要各种食材来准备菜肴。厨师不是亲自去不同的...

    什么是依赖注入——本文作者的思想太经典了

    依赖注入模式解决了这个问题,通过引入一个第三方的组件,即依赖注入容器(IoC Container),来管理组件之间的依赖关系。依赖注入容器负责提供依赖项,并将其注入到需要它们的组件中。这样,组件之间的依赖关系变得...

    angular 服务的单例模式(依赖注入模式下)详解

    在Angular框架中,单例模式是通过依赖注入(DI)系统来实现的。Angular的服务提供者和服务消费者之间通过依赖注入来关联,确保了服务实例在整个应用生命周期内是唯一的。 单例模式是设计模式的一种,其特点是在整个...

    一个轻量级的PHP依赖注入框架

    依赖注入(Dependency Injection,简称DI)是一种设计模式,它在软件工程中被广泛应用于解耦组件,提高代码的可测试性和可维护性。在PHP世界里,依赖注入框架可以帮助开发者更方便地管理类之间的依赖关系,减少硬...

    c# 依赖注入 控制反转

    ### C# 依赖注入 控制反转 #### 一、IoC(控制反转)简介 IoC,即"Inversion of Control"(控制反转),是软件工程领域的一个重要概念,特别是面向对象编程中的一个关键设计原则。从字面上理解,IoC指的是程序运行...

    PHP依赖注入容器库

    在IT行业中,依赖注入(Dependency Injection,简称DI)是一种设计模式,它有助于提高代码的可测试性、可维护性和灵活性。PHP作为一个广泛用于Web开发的动态类型语言,也有许多优秀的依赖注入容器库来支持这一模式。...

    .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了

    最近有个需求就是一个抽象仓储层接口方法需要SqlServer以及Oracle两种实现方式,为了灵活我在依赖注入的时候把这两种实现都给注入进了依赖注入容器中,但是在服务调用的时候总是获取到最后注入的那个方法的实现,这...

    spring依赖注入底层详解

    依赖注入是一种设计模式,它允许我们把一个对象的依赖关系传递给另一个对象,而不是让对象自己去查找或创建依赖。在Spring中,依赖注入可以通过构造器注入、设值注入和接口注入三种方式实现。 1. 构造器注入:通过...

    模仿Spring依赖注入

    依赖注入是一种设计模式,它允许我们解耦组件,使我们的应用程序更加灵活,易于测试和维护。本篇文章将深入探讨Spring框架中的依赖注入机制。 一、依赖注入的概念 依赖注入的核心思想是,一个对象不应该自行创建或...

    spring学习:依赖注入的几种方式讨论

    在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本文将深入探讨Spring中的依赖注入实现方式,以及如何通过样例文件...

    Angular6依赖注入Demo

    依赖注入是一种设计模式,它允许我们在不直接创建对象的情况下使用它们,而是将依赖关系的创建和管理交给了一个外部容器(在Angular中就是注入器)。在Angular6中,依赖注入通过元数据(metadata)来配置,这些元...

    php依赖注入demo

    依赖注入(Dependency Injection,简称DI)是软件设计模式中的一种,尤其在PHP开发中被广泛使用,以提高代码的可测试性和可维护性。在这个"php依赖注入demo"中,我们将探讨这一概念以及如何在实际PHP项目中实现它。 ...

    java中spring依赖注入的简单例子

    javaEE 开发中 现在最成熟的框架之一应该就是spring了 spring框架最强大的地方就是实现了依赖注入 也叫控制反转 最近的一个项目中用的就是 spring框架 spring框架是工厂模式的应用结合了MVC的设计思想 大家可以...

    Spring Ioc 注解 依赖注入

    - **依赖注入**:依赖注入是一种设计模式,通过依赖注入,一个类的对象不再负责创建其依赖的对象,而是由外部容器(Spring容器)来负责创建这些依赖并注入到需要它们的地方。 #### 三、Spring IoC容器的工作原理 ...

    第三章 Spring4 依赖注入

    在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种核心的设计模式,它允许我们创建松耦合的代码,提高软件的可测试性和可维护性。Spring4版本进一步优化了这一特性,使其更加灵活和强大。本篇文章将...

    反射与依赖注入DEMO

    依赖注入(Dependency Injection,简称DI)是一种设计模式,用于降低组件间的耦合,提高代码的可测试性和可维护性。它将组件之间的依赖关系从代码内部转移到外部,通常由容器来管理。有三种常见的依赖注入方式:构造...

    EFcore Repository 依赖注入方式实现数据库基本操作

    依赖注入(Dependency Injection, DI)是一种设计模式,它有助于降低代码耦合度,提高可测试性和可维护性。本篇文章将深入探讨如何使用EF Core结合依赖注入来实现数据库的基本操作。 1. **EF Core 简介** EF Core ...

Global site tag (gtag.js) - Google Analytics