非侵入式系介绍DI用语,我得理解是两个组件(类,接口)之间,比较独立,不深入到另一个类内部,哪位大虾能点拨一二?

关于“侵入式”和“非侵入式”设计

有读者讲“侵入式”这一术语无法理解,这里给一个简单解释,是我个人的看法。

在设计一个类时,按理说,需要考虑的应该只是该类所企图表示的那个“概念”本身:为表示有关概念应记录哪些信息,该类的对象与外界交换信息的界面等等。但定义这个类并不是为了放在那里观赏,而是为了使用。在考虑类对象的使用时,使用环境的一些要素就可能“侵入”这个类的设计之中。实际上,许多情况下我们常常可以在“侵入式”设计和“非侵入式”设计之间做一个选择,不同选择各有优缺点。在考虑非类的程序部分时,这种问题也同样存在。

例如,我们可能需要对类A的对象做引用计数,这里有两种基本可能性:将计数功能纳入类A的设计内(侵入式引用计数设计,此时类A的对象中包含了与引用计数有关的要素,这显然是与类A所要表示的概念无关的东西),或者将计数功能放在类A之外(非侵入式引用计数)。

本书中讨论容器时提出了“侵入式容器”设计和“非侵入式容器”设计的概念:当我们希望将类A的对象放入一种容器时,是否需要将该容器的实现要素“侵入”类A的设计实现之中(这显然是与类A本身并无必然关系的要素)。不同考虑导致不同的容器设计。

我基本上知道了,从夏大虾得著作中得知。

比如struts,需要继承一些struts得类,这就是侵入式,使得系统离不开那个框架。

而spring中,业务类不需要继承框架得类,将来抛弃spring也比较方便。

楼上大虾(土豆块

java 非侵入式_非侵入式设计 和侵入式设计 意思?相关推荐

  1. nfa状态转换图正规式_穿过隔离栅供电:隔离式直流/ 直流偏置电源探讨

    编者按: 您身边有许多隔离式电源可以选择,但需要了解输出数量.调节要求.输出功率.隔离等级.工作温度和输入电压范围等系统级规格.为此,您可以选择这种成本最低.可满足所有系统 要求的解决方案. 电子设计 ...

  2. java面向对象模拟电梯_面向对象的程序设计-电梯调度系统的设计、优化与测试...

    面向对象的程序设计(2019)第二单元总结 I  对问题的初体验 在开始OO之旅前,对OO电梯早有耳闻.这一次终于轮到我自己实现OO电梯了.首先从顶层需求出发对电梯系统进行分析,对象包括电梯.任务和乘 ...

  3. 非功能性需求_非接触式喷射自动点胶机的优势在哪儿?

    非接触式喷射自动点胶机的优点在哪儿?除开基本的非接触型自动点胶机,现如今高新科技产品越 来越多是利用非接触式喷射喷胶.非接触式喷胶适宜高精密元器件喷胶,细致商品粘合打包封装点漆着 色等,喷射喷胶点漆是 ...

  4. 非极大值抑制_非极大值抑制(Non-Maximum Suppression)

    文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 1. 什么是非极大值抑制 非极大值抑制,简称为NMS算法,英文为Non-Maximum Suppression.其思想是搜 ...

  5. 字典推导式_聊一聊:python的各种推导式(列表推导式、字典推导式、集合推导式)...

    作者:苍松 原文:https://www.cnblogs.com/tkqasn/p/5977653.html 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可 ...

  6. python列表推导式_聊一聊:python的各种推导式(列表推导式、字典推导式、集合推导式)...

    作者:苍松 原文:https://www.cnblogs.com/tkqasn/p/5977653.html 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可 ...

  7. html5 css 响应式_在HTML5 / CSS3中编写响应式简历

    本文是我们的" Web响应式设计系列"的一部分,该系列由工具,资源和教程组成,可帮助您为所有平台的用户创建网站. 单击此处查看同一系列的更多文章. 业务部分的几乎每个人都在某个时间 ...

  8. 基于java的人力资源管理系统_基于JavaWeb的企业人力资源管理系统的设计与实现...

    <基于Java Web的企业人力资源管理系统的设计与实现.doc>由会员分享,可免费在线阅读全文,更多与<基于Java Web的企业人力资源管理系统的设计与实现>相关文档资源请 ...

  9. 微博app是用java写的吗_基于安卓Android第三方微博APP的设计(Eclipse)

    基于安卓Android第三方微博APP的设计(Eclipse)(论文11000字,程序代码) 摘要:Android系统是基于LINUX的手机操作系统,其最大的优势在于整个系统的开源性和免费性.本系统以 ...

最新文章

  1. ORBBuf : 一种鲁棒的协同视觉SLAM缓冲方法
  2. jqgrid 单元格绑定点击事件_自定义事件带参数的触发过程
  3. 学习python自动化运维笔记文件比较
  4. opencv双目测距资料整理
  5. GetSafeHwnd()函数
  6. **[权限控制] 利用CI钩子实现权限认证
  7. php服务器无法上传图片,IIS+php服务器无法上传图片解决办法_PHP教程
  8. 使用 PowerShell 自动化 CloudServices 发布
  9. Linux汇编调试器EDB
  10. cblas_sgemm cblas.h
  11. C语言不支持函数重载的原因
  12. 筛选N以内的素数C语言版(1022)
  13. 关于使用开源版urule决策引擎优化性能和配置客户端集群同步生效的问题
  14. python之if-else_Python中的if-else
  15. 经验 | 在麻省理工人工智能实验室如何做研究?
  16. mysql 连续打卡天数_Sql如何统计连续打卡天数
  17. Unity 3D涂色
  18. 豪华金色粒子动态logo展示AE视频模板
  19. 新年新气象,2021来了,用Python换一张头像迎新年吧!
  20. 通知栏通知不被清除通知所取消

热门文章

  1. 20170506 《摔跤吧,爸爸》观影笔记
  2. 浅谈幼儿园计算机论文,浅谈幼儿教育的论文
  3. 【C++】【数据结构】顺序栈的基本操作(初始化、入栈、出栈、取栈顶元素、遍历输出栈)的算法实现附全代码
  4. 凯撒密码c++语言程序,凯撒密码(加密与解密)
  5. G1:为什么老生代分区到新生代分区和老生代到老生代需要记录引用关系
  6. 计算机网络安全说课稿,7.1 计算机网络的安全问题说课稿【一等奖】
  7. 安装AdminLTE
  8. 2022年中级经济师考试中级金融专业练习题及答案
  9. V3D中神经元SWC颜色对照图及色彩搭配
  10. vim的ex模式用法