`
chelsea
  • 浏览: 119372 次
  • 来自: ...
社区版块
存档分类
最新评论

假冒的艺术

    博客分类:
 
阅读更多

预处理的接入点

  • 构建脚本中的宏定义可以控制将文本解释为真正的实现还是假的实现

  • 构建脚本中的头文件搜索路径可被用来控制接入真正的声明还是假的声明

  • 头文件中的防卫宏可被用来接入假的声明以遮挡真正的声明被包含进来

上面第二点通常要求提供同名的头文件, 而使用不同的构建设置

而第三点不要求同名, 只要使用相同的防卫宏, 并保证把包含替代声明的头文件放在真正的头文件前面包含进来就可以, 使用同一构建设置即可

 

编译链接的接入点

  • 构建脚本中的库搜索路径可被用来控制接入真正的实现还是假的实现

  • 针对接口编程, 可以控制接入真正的实现还是假的实现

  • 与针对接口编程类似, 使用函数指针/函数对象等封装函数, 可以接入假的实现

  • 使用函数封装数据访问, static访问, new 操作符, 可以子类化以接入假的实现

  • 改造为模板, 可以传入不同的模板实参来控制接入真正的实现还是假的实现

  • 利用名称作用范围, 同名局部变量可遮挡其它名字等, 来控制接入真正的实现还是假的实现

  • 利用对象的内存布局, 直接将某几个假的函数地址组成的 vtable, 强转为被测类型

 

运行时的接入点

  • 解释型动态语言, 直接在测试前重定义

  • 编译型静态语言, 运行时修改函数地址

 

基本上两个原则

  • 寻找, 引入, 利用一切可能的接入点

  • 在一切依赖具体实现的地方, 插入一层间接

 

例子: 测试使用了 static 函数, new 操作符的客户代码

在 TDD 流行之后, 关于 Singleton, static 函数, new 操作符等依赖具体实现的代码被推荐避免使用. 遗留系统中则不可避免的保留着. 它们被批评的原因是使它们的客户代码难以测试. 我们可以利用 "使用函数封装数据访问, static访问, new 操作符, 可以子类化以接入假的实现" 来进行测试.

public class SingletonClient {

public void doSomething(){

SingletonObject service = SingletonObject.instance();

service.execute();

}

}

上面的这个SingletonClient的doSomething是无法测试的, 因为引用了一个静态函数. 可以把对静态函数的引用抽取到一个可覆写的函数中来引入接入点:

class SingletonClient {

public void doSomething(){

SingletonObject service = getServiceObject();

service.execute();

}

protected SingletonObject getServiceObject() {

return SingletonObject.instance();

}

}

这样测试时我们便可以子类化SingletonClient, 只重写getServiceObject, 便可以针对这个子类进行测试, 效果与针对基类测试是一样的(因为其它的函数实现都相同, 只是依赖的第三方对象被替换为了假的实现):

class SingletonClientInTestEnvironment extends SingletonClient {

protected SingletonObject getServiceObject() {

return new SingletonObjectStub();

}

}

例子: C++ 测试, 用遮盖技术(定义同名服务类), 当同时需要测真正的服务类本身时如何解决链接问题? (重定义)

那就不要定义同名的类, #define 一个宏加一层间接, 恰当的时候 #undef. 如果是函数, 可以定义一个函数对象来封装想假冒的函数, 生成该函数对象类型的一个变量时, 使用与函数相同的名字, 利用名字的作用域规则来遮盖原来的函数.

分享到:
评论

相关推荐

    规范艺术品市场.doc

    新闻延伸中提到的案例,如艺术家史国良作品的伪造事件,揭示了艺术品市场的欺诈行为,强调了艺术品鉴定的困难以及打击假冒艺术品的重要性。这些事件提醒我们,规范艺术品市场不仅需要法律制度的完善,还需要提高公众...

    艺术品智能鉴定系统的设计与实现.pdf

    总的来说,这个艺术品智能鉴定系统综合运用了硬件设备、通信技术、图像处理和模式识别等多方面知识,通过科学的方法解决了艺术品鉴定难题,对于提升艺术品市场的诚信度和打击假冒行为具有重要意义。

    家具艺术节活动策划方案.doc

    同时,他们还将针对市场假冒伪劣产品的严峻问题,共同商讨应对策略。此外,新产品研发的方向和策略也将成为讨论的热点,以期推动家具行业的创新与发展。 制造商与经销商茶话会,为家具行业的上下游企业搭建了一个...

    区块链视域下的唐陵雕塑艺术文化传播研究.pdf

    每一条关于唐陵雕塑的数据更新都会被打上时间戳,形成不可篡改的历史记录,这对于鉴别艺术品的真伪和传承历史脉络至关重要,有助于打击假冒伪劣,保护文化遗产的尊严。 此外,区块链的共识机制可以促进多方面的合作...

    行业分类-设备装置-一种含有彩色艺术水印效果的可机读的防伪纸及制造方法.zip

    在这一背景下,一种新型的防伪技术——含有彩色艺术水印效果的可机读防伪纸应运而生。它不仅在视觉效果上具有艺术美感,还能够通过现代化的机器设备进行快速准确的识别,为防伪领域带来了革命性的变革。 水印技术...

    ac-artwork-encyclopedia:动物杂交:新视野艺术品百科全书:fox:

    问题在于该角色可以向您出售假冒的艺术品,因此您必须小心。 在“ ,您可以找到艺术品的列表,其中包含这些艺术品的真实版本和虚假版本之间的差异。 该项目实质上是本文提供的数据的搜索引擎。 当地发展 该应用...

    nihon:授予假名假冒伪劣学分的网站。 动漫方面的关注者

    4. **资源分享**:nihon 可能会提供动漫壁纸、角色艺术图等资源下载,这些页面的设计也需要CSS来确保内容的清晰展示和下载按钮的突出。 5. **活动和竞赛**:网站可能会举办线上活动或竞赛,如Cosplay比赛或动漫知识...

    行业分类-设备装置-基于图像识别和NFC的字画防伪识别系统及其防伪方法.zip

    总的来说,"基于图像识别和NFC的字画防伪识别系统"是科技与艺术的完美结合,它利用先进的技术手段来保护传统文化的遗产,打击艺术品市场的假冒行为。随着技术的进步,我们有理由相信,未来的防伪手段将更加智能,...

    行业文档-设计装置-用于书画作品保真鉴定的鉴定板.zip

    书画作品的保真鉴定是确保艺术品市场公正交易的基础,防止假冒伪劣作品流入市场,保护艺术家的权益,同时也是收藏家、投资者确定作品价值的重要依据。鉴定的准确性对于维护艺术市场的健康发展具有不可忽视的作用。 ...

    景泰2020年事业编招聘考试真题及答案解析考试版.docx

    音乐电视作为外来艺术形式在中国找到了一条本土化发展的成功路径,既体现了外来艺术的吸收,也展现了中国文化的创新与发展。 11. 可持续发展:可再生资源的利用。市场上很多汽车大量使用可再生物质,而在时尚界,如...

    行业文档-设计装置-局部全息卡纸.zip

    1. 防伪标识:由于全息图像的独特性和难以复制性,局部全息卡纸常被用于制作防伪标签,广泛应用于药品、化妆品、奢侈品等领域,防止假冒伪劣产品。 2. 包装设计:局部全息卡纸可提升商品包装的视觉冲击力,吸引消费...

    浅谈玉雕行业的未来发展之路.docx

    通过举办雕刻大赛,提升行业影响力,吸引更多的参与者,并规范玉石原料市场,打击假冒伪劣,保护消费者权益。 最后,鼓励玉雕师创新精神的培养至关重要。举办文化研修班,让玉雕师有机会学习和融入更多传统文化,...

    行业文档-设计装置-防伪铅笔芯及含有该铅笔芯的铅笔.zip

    特别是在铅笔制造业中,防伪技术的引入不仅保护了企业的品牌权益,而且有效地阻止了假冒伪劣产品对市场的侵害。本文将深入探讨防伪铅笔芯及含有该铅笔芯的铅笔这一创新技术,分析其在提升产品安全性与唯一性方面的...

    高考第一轮复习之综合强化训练:传记阅读[精选].doc

    同时,他对原则问题立场坚定,对于假冒他的书法和欺诈行为,他坚决反对并采取了严厉的措施,表现出他的正直和不容侵犯的尊严。 启功先生的一生,无论是学术上的成就,还是他的人生态度,都为我们树立了一个大写的...

    湖北省浠水县实验高级中学2019_2020学年高一语文上学期入学考试试题2020010703103

    以金庸的小说为例,虽然“粉丝”可能对假冒的金庸作品进行鉴别和淘汰,他们的鉴赏方式可能更加主观和情感化,而“知音”则更可能理性地挖掘作品的深层含义,批评时注重分析和逻辑。这种区分在一定程度上反映了不同...

    电信设备-一种通过二维码进行画作信息管理的方法.zip

    一旦发现非法复制或假冒的二维码,系统可以迅速识别并报警,有效保护艺术品的合法权益。 在实际应用中,这种方法可以应用于各种场合,如美术馆、博物馆、私人收藏、拍卖行等。对于美术馆而言,游客可以通过扫描...

    全网营销项目策划书.doc

    然而,市场在过去十年间经历了野蛮式增长,导致资源过度开发、欺诈行为频发、假冒伪劣商品充斥,消费者的鉴赏能力和理性消费意识亟待提高。 2. 用户定位 主要目标用户群体为对文玩有独特兴趣和鉴赏力的人群,尤其是...

    行业文档-设计装置-防伪纸箱.zip

    4. 特殊行业:如烟草、贵重艺术品等,防伪纸箱是防止非法交易的重要手段。 四、未来发展趋势 随着科技的发展,防伪技术也将持续升级。未来的防伪纸箱可能会融入更多的智能元素,如物联网技术、区块链技术,实现...

    传媒:潮玩大众化或成IP变现新风口.rar

    如何在保障设计师权益的同时,防止假冒伪劣产品的出现,是传媒行业需要关注的问题。这也意味着,传媒机构在报道潮玩市场动态的同时,也要承担起普及版权知识,提高公众版权意识的责任。 总之,“传媒:潮玩大众化或...

    行业分类-外包设计-关于防伪包装盒的介绍分析.rar

    总的来说,防伪包装盒的开发与设计是结合艺术、科技与策略的综合过程。它不仅是保护品牌的工具,也是提升消费者信心、打击假冒市场的重要手段。对于外包设计公司来说,理解客户的需求,掌握最新的防伪技术,并将其...

Global site tag (gtag.js) - Google Analytics