java的几个概念AOP、IOC、DI、DIP、工厂模式、IOC容器
1、AOP:面向切面编程
把一些公共类,比如日志类、安全类、数据库连接类、系统统一的认证、权限管理类、资源池(如数据库连接池的管理)、性能监控等做成一个公共类,当其他类需要时,进行注入(调用)。这样这些公共类存活于内存当中,随时供其他类进行调用,不会因为某一个调用的类使用完而结束
这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程
2、DI:依赖注入
本来一个类依赖其他类,就在类中进行声明对“具体类”的依赖,依赖注入的做法是把需要依赖的类写成“抽象类”,这样,“抽象类”就可以传入(注入)各种“具体类”;依赖注入的实现方法有:构造函数、setter、接口三种方式
3、DIP:依赖倒置原则(Dependency Inversion Principle )
软件设计的一个重要思想,把原本的高层建筑依赖底层建筑“倒置”过来,变成底层建筑依赖高层建筑。高层建筑决定需要什么,底层去实现这样的需求,但是高层并不用管底层是怎么实现的。我只需要告诉你我需要什么,并不关心你是怎么办到的
4、IOC:控制反转( Inversion of Control )
控制反转就是依赖倒置原则的一种代码设计的思路,实现的方式是采用“依赖注入”
5、IOC容器:就是完成了“根据上层类依次找到下层类,然后再由下层类一步一步创建,构造出上层类的过程”的任务
6、工程模式:把各种类似功能的模块集中到一起,比如说水果工厂,里面有菠萝、苹果、山竹、樱桃等,当你需要具体某个水果类的时候,就调用这个工厂,传递参数(告知是某个水果)
参考:
1、https://www.zhihu.com/question/23277575
2、https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665513179&idx=1&sn=772226a5be436a0d08197c335ddb52b8#rd
3、http://www.runoob.com/design-pattern/factory-pattern.html
4、https://www.zhihu.com/question/24863332
5、http://www.cnblogs.com/xrq730/p/4919025.html
java的几个概念AOP、IOC、DI、DIP、工厂模式、IOC容器的更多相关文章
- java:常用的两种设计模式(单例模式和工厂模式)
一.单例模式:即一个类由始至终只有一个实例.有两种实现方式(1)定义一个类,它的构造方法是私有的,有一个私有的静态的该类的变量在初始化的时候就实例化,通过一个公有的静态的方法获取该对象.Java代码 ...
- Java设计模式(5:设计模式的分类及工厂模式详解)
一.设计模式的分类 总的来说,设计模式可以分为三大类:创建型模式.结构型模式.行为型模式,具体如下图: 二.工厂模式 工厂模式分为简单工厂模式.工厂方法模式和抽象工厂模式.其中简单工厂模式并不属于23 ...
- 设计模式——从工厂方法模式到 IOC/DI思想
回顾简单工厂 回顾:从接口的角度去理解简单工厂模式 前面说到了简单工厂的本质是选择实现,说白了是由一个专门的类去负责生产我们所需要的对象,从而将对象的创建从代码中剥离出来,实现松耦合.我们来看一个例子 ...
- IoC/DI
From:http://jinnianshilongnian.iteye.com/blog/1471944 我对IoC/DI的理解 博客分类: spring杂谈 IoCDI IoC IoC: Inv ...
- 我对IoC/DI的理解
IoC IoC: Inversion of Control,控制反转, 控制权从应用程序转移到框架(如IoC容器),是框架共有特性 1.为什么需要IoC容器 1.1.应用程序主动控制对象的实例化及依赖 ...
- 【java设计模式】(4)---工厂模式(案例解析)
设计模式之工厂模式 工厂模式分三种:简单工厂模式(也叫静态工厂模式),工厂方法模式(也叫多形性工厂),抽象工厂模式(也叫工具箱)下面会一一举例. 一.概念 1.什么是工厂模式 这种类型的设计模式属于创 ...
- java设计模式之一工厂模式
简单工厂模式是java设计模式中最简单的设计模式之一: 工厂模式是最常用的设计模式之一. 工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模 ...
- 工厂模式——java设计模式
工厂模式 目录 何为工厂模式 工厂方法与抽象工厂 如何在Java EE中通过@Producers与@Inject注解实现工厂模式 如何创建自定义注解以及通过@Qualifier消除具体实现之间的歧义 ...
- Java设计模式の工厂模式
-------------------------------------------------------- 目录: 一.序言 二.简单工厂模式 三.工厂方法模式 四.简单工厂和工厂方法模式的比 ...
随机推荐
- linux安装软件的几种方法
一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在 ...
- [洛谷P4841]城市规划
题目大意:求$n$个点的带标号的无向连通图的个数 题解:令$F(x)$为带标号无向连通图个数生成函数,$G(x)$为带标号无向图个数生成函数 那么$G(x) = \sum_{i=0}^{\infty} ...
- BZOJ 1901: Zju2112 Dynamic Rankings | 带修改主席树
题目: emmmm是个权限题 题解: 带修改主席树的板子题,核心思想是用树状数组维护动态前缀和的性质来支持修改 修改的时候修改类似树状数组一样进行logn个Insert 查询的时候同理,树状数组的方法 ...
- SecureCRT配置设置
颜色设置 参考: http://blog.csdn.net/zklth/article/details/8937905 配置导入.导出 参考: http://jingyan.baidu.com ...
- HDU3605:Marriage Match IV
Marriage Match IV Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 在ESXi使用esxcli命令強制关闭VM
最近學到一個在VMware ESXi 下面強制關閉一個沒有反應的VM的方法, 一般正常都是使用vSphere Client 去控制VM電源, 但是有時會發生即使用裡面的Power Off 按鈕但是還是 ...
- 【ZOJ4063】Tournament(构造)
题意:n个人要打m轮比赛 每一轮每个人都要有一个对手.而且每个对手只能打一次.假设a与b打了,c与d打了, 那么后面的任意一轮如果a与c打了,那么b就必须和d打 问是否存在方案,输出字典序最小的一组, ...
- vs2015部署---下一代VC运行时库系统:the Universal CRT
前言 其实the Universal CRT(通用C运行时库)已经不能算是“下一代”,因为它已经在前两年伴随着Visual Studio 2015和Windows10发布.但是由于之前使用VS2015 ...
- undefined reference to XXX 问题原因
原文地址:http://blog.csdn.net/cserchen/article/details/5503556 Linux下编译程序时,经常会遇到“undefined reference to ...
- PHP 时间获取本周 本月 本季度用法
<?php $week_begin = mktime(0, 0, 0,date("m"),date("d")-date("w&qu ...