精华内容
下载资源
问答
  • 什么是侵入式设计和非侵入式设计?(初步理解)
    ###共识
    
    >设计一个类时,需要的只是该类所企图表达概念本身的部分

    eg:我想设计一个Person类,有姓名、年龄两个属性和吃、喝两个方法。这就是设计这个类的概念。
    ###侵入式和非侵入式设计设计:
    如果我想统计Person类 的引用次数,有两种方法:<br>
        1.  在Person类中加入一个统计的方法。(侵入式:因为统计方法并不属于设计这个类时的概念,而是Person类想要表示的概念无关的东西。)<br>
        2. 将计数功能放在类外。(非侵入式设计:这个功能在类之外,没有侵入到这个类的内部。)
    ###Eg:
    在使用Struts2框架时,类需要继承一些Struts2的类,使得系统离不开框架。
    在使用spring框架时,不需要继承框架的类,抛弃Spring较容易。
    展开全文
  • 在看书的时候经常看到"非侵入式设计",这样的名称,不太明白什么意思,特意百度了一番,记录一下,方便查阅,以防忘记。 设计理念不同 侵入式设计,就是设计者将框架功能“推”给客户端。 非侵入式设计,则是设计者...

    在看书的时候经常看到"非侵入式设计",这样的名称,不太明白什么意思,特意百度了一番,记录一下,方便查阅,以防忘记。

    设计理念不同

    • 侵入式设计,就是设计者将框架功能“推”给客户端。
    • 非侵入式设计,则是设计者将客户端的功能“拿”到框架中用。

    设计表现不同

    • 侵入式设计有时候表现为客户端需要继承框架中的类。
    • 非侵入式设计则表现为客户端实现框架提供的接口。

    依赖性不同

    • 侵入式让用户代码产生对框架的依赖,这些代码不能在框架外使用,不利于代码的复用。但侵入式可以使用户跟框架更好的结合,更容易更充分的利用框架提供的功能。
    • 非侵入式的代码则没有过多的依赖,可以很方便的迁移到其他地方。但是与用户代码互动的方式可能就比较复杂。
    展开全文
  • 【转】非侵入式设计侵入式设计 意思? 非侵入式系介绍DI用语,我得理解是两个组件(类,接口)之间,比较独立,不深入到另一个类内部,哪位大虾能点拨一二? 关于“侵入式”和“非侵入式”  有...

    【转】非侵入式设计 和侵入式设计 意思?

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

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

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

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

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

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

    我基本上知道了,从夏大虾得著作中得知。 
    比如struts,需要继承一些struts的类,这就是侵入式,使得系统离不开那个框架。 
    而spring中,业务类不需要继承框架的类,将来抛弃spring也比较方便。 
    楼上大虾(土豆块)能否谈下ejb与spring之间得关系。你用ejb吗?如果用了,感觉如何?

    非侵入式(non-intrusive)设计是目前非常热门的话题。在一般的讨论中,非侵入式设计总是和Spring这样的IoC容器或者AOP技术联系在一起。但是从思想上说,non-intrusive并不等价于IoC或者AOP,它是一个比AOP更加宽泛的概念。
          首先,我们考察一下何谓intrusive。典型的intrusive实现是继承特定的基类, 或者实现特定的接口. 在抽象的意义上说, intrusive意味着在基础结构中预留了一些特殊的,专用的结构, 这些结构对于基础功能而言不仅仅是无用的, 甚至是有害的, 例如影响性能或者模糊了原有的概念结构, 而系统整体的后期扩展能力也受到这些预设的结构通道的限制. 
    non-intrusive设计的基本特点是尽量利用基础结构的元素, 而不是引入额外的特殊结构.例如, 在witrix平台的tpl模板中
    <button tpl:tag="ui:FlatButton" value="xx" οnclick="alert('ok')" />
    如果后台tpl引擎不解析<ui:FlatButton>标签, 那么该标签的表现就是普通的html button. 这里整个页面的界面表现结构没有被tpl标签所破坏,而如果像jsp tag那样强行规定必须采用节点语法, 即
    <ui:FlatButton value="xx" οnclick="alert('ok')" />
    则在没有tpl引擎的情况下, 界面结构被tpl标签所破坏,此时在dreamweaver这样的可视化工具中我们无法再识别出有效的界面元素, 丧失了WYSIWYG编辑的能力.
    tpl:tag属性属于html语法本身规定了的自定义属性, 它在html中的存在是符合规范的, 而且它对于button来说没有造成什么限制或损害, 因而是一种无害的标记. 在没有tpl模板引擎的情况下, tpl:tag属性与其他自定义属性一样处于同样的地位, 没有什么特殊的作用. 而一旦tpl模板引擎识别出该特殊标记, 整个节点就被解释成一个具有丰富表现形式的平面按钮而不是系统缺省风格的普通按钮. 从级列设计的角度上说, button对应于ui:FlatButton在没有tpl解析能力情况时退化了的结果. 在EJB3的规范中, 普通的POJO(Plain Old Java Object)对象在经过无害的标记(annotation)之后通过Enhance过程获得持久化等特性, POJO正对应于EJB Object的退化形式. 在某种意义上我们可以说, 存在着多少种可退化方式,就对应着多少种non-intrusive design。
          与传统设计中的结构堆砌不同, 现代技术更加强调在原有结构基础上的同态变化, 关注原有结构中的某些部分出现特殊意义后所产生的对称破缺. 在non-intrusive设计中, 基础的结构中没有为扩展内置什么特殊的结构, 一般仅仅是标记而已, 这些标记是无害的甚至本身在基础结构中是有用的, 例如某些javascript库在前台html页面中利用html标签的class属性作为标记. 为了识别这些属于结构标准部分的标记并对之进行处理,我们需要一种可选择的结构透明性, 具体来说我们需要能渗透到系统内部,准确的定位到标记处. 这就类似于x光检测, x光只与某些特殊材料发生强烈作用而普通部分对于x光而言是透明的. 而当外部引擎识别出这些特殊的标记之后, 可能需要操纵该局部结构, 例如在基础结构中插入一些新的结构以实现基础结构的增强. 这些都可能需要应用类似于AOP的技术, 而在这一增强过程中关于扩展结构的具体知识存在于扩展引擎中而不是基础结构中, 因而往往整体表现出一种IoC的特性.

    展开全文
  • 侵入式设计与非侵入式设计

    千次阅读 2018-04-06 00:47:36
    侵入式的做法就是要求用户代码“知道”框架的代码,表现为用户代码需要继承框架提供的类。非侵入式则不需要用户代码引入框架代码的信息,从类的编写者角度来看,察觉不到框架的存在。例如: 使用struts的时候,我...
    假设大家都想要把用户代码塞到一个框架里。
    侵入式的做法就是要求用户代码“知道”框架的代码,表现为用户代码需要
    继承框架提供的类非侵入式则不需要用户代码引入框架代码的信息,从类的编写者角度来看,
    察觉不到框架的存在
    例如: 
    使用struts的时候,我需要继承一些struts的类,这时struts侵入到了我的代码里。 
    使用spring,编写一些业务类的时候不需要继承spring特定的类,通过配置完成依赖注入后就可以使用,此时,spring就没有侵入到我业务类的代码里。 

    侵入式让用户代码产生对框架的依赖,这些代码不能在框架外使用,不利于代码的复用。但侵入式可以使用户跟框架更好的结合,更容易更充分的利用框架提供的功能。 
    非侵入式的代码则没有过多的依赖,可以很方便的迁移到其他地方。但是与用户代码互动的方式可能就比较复杂。
    展开全文
  • 侵入式设计侵入式设计

    千次阅读 2014-09-12 08:41:14
    关于“侵入式”和“非侵入式设计 有读者讲“侵入式”这一术语无法理解,这里给一个简单解释,是我个人的看法。 在设计一个类时,按理说,需要考虑的应该只是该类所企图表示的那个“概念”本身:为表示有关...
  • 侵入式设计和非侵入式设计的理解

    千次阅读 2018-04-21 23:20:52
    比如Android的RecyclerView做下拉刷新如果你从Adapter内部入手去制作,这叫侵入式如果像官方的SwipeRefreshLayout一样,这叫非侵入式官方的下拉刷新就很神奇他只需要在RecyclerView外面套一层SwipeRefreshLayout,他...
  • 什么是非侵入式设计?

    千次阅读 2013-01-25 11:00:54
    侵入式设计,就是设计者将框架功能“推”给客户端,而非侵入式设计,则是设计者将客户端的功能“拿”到框架中用。  侵入式设计有时候表现为客户端需要继承框架中的类,而非侵入式设计则表现为客户端实现框架提供...
  • 【转】侵入式与非侵入式设计的含义 在设计一个类时,按理说,需要考虑的应该只是该类所企图表示的那个“概念”本身:为表示有关概念应记录哪些信息,该类的对象与外界交换信息的界面等等。但定义这个类并不是为了...
  • **问题场景:** ...等用户行为服务接口。... **问题所在:** ...有没有种设计模式或者方法,可以在追加完积分模块功能后,比如用户登陆,不用直接在用户登陆方法里面调用追加积分的方法,实现非侵入式的的设计
  •  侵入式设计,就是设计者将框架功能“推”给客户端,而非侵入式设计,则是设计者将客户端的功能“拿”到框架中用。   侵入式设计有时候表现为客户端需要继承框架中的类,而非侵入式设计则表现为客户端实现...
  • 侵入式设计 一个客户端的代码可能包含框架功能和客户端自己的功能。 侵入式设计,就是设计者将框架功能“推”给客户端,而非侵入式设计,则是设计者将客户端的功能“拿”到框架中用。 侵入式设计有时候表现为...
  • 侵入式及非侵入式概念

    千次阅读 2019-07-21 22:46:49
    侵入式与非侵入式设计:在学框架时,经常会遇到侵入式设计与非侵入式设计?究竟是什么意思? 参考侵入式与非侵入式概念。 这两种设计,主要是基于系统扩展性以及依赖性来说的。 当我们用Struts2框架做系统时,...
  • 1、侵入式与非侵入式设计:在学框架时,经常会遇到侵入式设计与非侵入式设计?究竟是什么意思? 个人感觉,这两种设计,主要是基于系统扩展性以及依赖性来说的。比如说:①当我们用Struts2框架做系统时,Action需要...
  • 侵入式&非侵入式

    2018-04-03 18:43:00
    侵入式设计 引入了框架,对现有的类的结构有影响;即需要实现或继承某些特定类。 例如:Struts框架 非侵入式设计 引入了框架,对现有的类结构没有影响。 例如:Hibernate框架 / Spring框架 转载于:...
  • 侵入式设计,就是设计者将框架功能“推”给客户端,而非侵入式设计,则是设计者将客户端的功能“拿”到框架中用。  侵入式设计有时候表现为客户端需要继承框架中的类,而非侵入式设计则表现为客户端实现框架提供...
  • 脉冲血氧仪通过在人体的指尖、足尖或耳垂等处放置外设探针(传感器)而非采用侵入式监测血氧含量。探针通常包含两个发光二极管(LED):一个LED工作在可见红色光谱(660nm),另一个LED工作在红外光谱(940nm),但某些设计...
  • 侵入式和非侵入式

    2020-03-02 09:26:54
    侵入式和非侵入式侵入式利弊非侵入式利弊拓展小结 侵入式 一句话概括就是,你的代码需要依赖框架的代码,如果把框架拿掉或者换一个框架,就需要重新修改代码。 举个很简单的栗子啦: 1.如果使用侵入式的框架,一般...
  • Go语言的Interface很大不同于C#,Java这种OOP语言的,其强大之处之一在于非侵入式设计。 先引用一段基于C++的关于非侵入性的阐述 http://blog.csdn.net/chelsea/article/details/446298 基础复杂性是守恒的,需要...
  • c++侵入式对象计数设计技术

    千次阅读 2015-12-08 20:22:22
    侵入式对象计数的设计原理相对非侵入式的来说: 具有以下优点: 1、一个资源对象无论被多少个侵入式智能指针包含,从始至终只有一个引用计数变量,不需要在每一个使用智能指针对象的地方都new一个计数对象,这样子...
  • 目录侵入式(引入或继承了别的包或框架)非侵入式(没有依赖,自主研发) 侵入式(引入或继承了别的包或框架) 从字面意思理解,就是你的代码里已经嵌入了别的代码,这些代码可能是你引入过的框架,也可能是你通过...
  • FreeRTOS相关:linux中的侵入式链表设计 相关博客FreeRTOS解析:List Linux内核中也有侵入式的链表的设计,在Linux中提供的链表项的定义为 struct list_head { struct list_head *next, *prev; }; 使用...
  • 1.非侵入式的技术体现 允许在应用系统...2.如何实现非侵入式设计目标的  1)应用反射机制,通过动态调用的方式来提供各方面的功能,建立核心组间BeanFactory  2)配合使用Spring框架中的BeanWrapper和BeanFac...
  • 侵入式和非侵入式框架的区别什么是框架的侵入性? 什么是框架的侵入性? 一句话概括就是,你的代码需要依赖框架的代码,如果把框架拿掉或者换一个框架,就需要重新修改代码。 举个很简单的栗子啦: 如果使用侵入式的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,476
精华内容 10,990
关键字:

侵入式设计