REST Assured 系列汇总 之 REST Assured 5 - Abstraction抽象,隐藏实现

Abstraction抽象是面向对象编程(Object Oriented Programming)的台柱子 . Java是一门面向对象编程语言,所以它也必须遵循抽象概念,隐藏实现,显示一些必要的特征给用户称为抽象。抽象可以用抽象类和接口来达成。

当你开始学习有关抽象类和接口,关联上抽象概念时,你会有些迷失。我们说隐藏实现就是抽象,那么一个方法也是抽象的例子。你可以创建一个方法包含所有的实现逻辑去执行一个任务,使得这个方法是public,方便其它调用者调用这个方法,不用关心其内部具体实现。“对外界显示所有必要细节”-尽可能使用访问说明符如public, private, protected 和默认,还有暴露输入参数和返回类型。通过方法调用我们也可以体会抽象的概念。

当然抽象概念“隐藏实现”可以通过多种方法达成。

当我们说抽象类和接口是达成抽象的方式,它意味着“执行一个特殊的任务,调用者并不操心里面的具体实现”。假设,我需要得到各省人口信息。我需要一个令牌,那上面有人口细节信息。每个省份的代表会找到我并收集令牌。所有的省份代表负责给我提供他们各自省份的人口细节信息。我并不操心他们怎么安排细节。每个省份执行任务的过程可能不同,这也是抽象的真正含义。

现在来理解抽象类和接口概念。最好的例子就是Seleniun的WebDriver接口。WebDriver 有一个契约方法用来执行特殊的任务。不同的浏览器类(IE, Firefox,Chrome)实现WebDriver接口,负责用它们各自的方法实现去执行任务。Chrome浏览器不用担心Firefox具体怎样执行任务。WebDriver也不担心不同浏览器的具体实现,这就是抽象。

WebDriver htmlUnitdr = new HtmlUnitDriver();
WebDriver ieDriver = new InternetExplorerDriver();
WebDriver chromeDriver = new ChromeDriver();
WebDriver firefoxDriver = new FirefoxDriver();

REST Assured 5 - Abstraction抽象,隐藏实现相关推荐

  1. Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 1 第一节 原则 kiss 1 第二节 提升到层次哲学层次 1 第三节 命名也要通用抽象 隐藏细节 1 第二章 通用性原

    Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 第一节 原则 kiss 第二节 提升到层次哲学层次 第三节 命名也要通用抽象 隐藏细节 第二章 通用性原则  扩展性 第一 ...

  2. 《Composing Programs》学习笔记(1.1)开始(关键词:软件工程/抽象/函数)

    Chapter 1: Building Abstractions(抽象) with Functions 1.1 Getting Started 第1章:利用函数构造抽象 1.1 开始 Computer ...

  3. Yoshua Bengio团队通过在网络「隐藏空间」中使用降噪器以提高深度神经网络的「鲁棒性」...

    原文来源:arXiv 作者:Alex Lamb.Jonathan Binas.Anirudh Goyal.Dmitriy Serdyuk.Sandeep Subramanian.Ioannis Mit ...

  4. Yoshua Bengio团队通过在网络「隐藏空间」中使用降噪器以提高深度神经网络的「鲁棒性」

    原文来源:arXiv 作者:Alex Lamb.Jonathan Binas.Anirudh Goyal.Dmitriy Serdyuk.Sandeep Subramanian.Ioannis Mit ...

  5. 趣谈设计模式 | 桥接模式(Bridge):将抽象与实现分离

    文章目录 案例:跨平台应用开发 桥接模式 总结 完整代码与文档 案例:跨平台应用开发 A公司最近准备开发一组应用合集,目前包括了视频播放器.音乐播放器.文本播放器三种应用,但是在发售前,他们遇到了困难 ...

  6. [python][算法][CS61a]python列表,python抽象数据类型使用练习

    提示:本文内容来源于UCB CS61A 2020 Summer课程,详情请点击CS 61A: Structure and Interpretation of Computer Programs 文章目 ...

  7. Prefactoring——Guidelines

    Prefactoring--Guidelines Prefactoring--Introduction Introduction 虽然Prefactoring这个概念并无多少新意(个人看法),但Ken ...

  8. JS面向对象一:MVC的面向对象封装

    JS面向对象一:MVC的面向对象封装 MDNjavascript面向对象 面向对象(Object-Oriented) 面向对象里面向的意思是以...为主,面向对象编程既以对象为主的编程. 面向对象的一 ...

  9. C#教程8:面向对象编程【01】

    一.OOP面向对象定义 面向对象编程 (OOP) 是一种编程范式,它使用对象及其交互来设计应用程序和计算机程序. OOP中有一些基本的编程概念: Abstraction 抽象 Polymorphism ...

  10. 笔记-信息系统开发基础-面向对象基本概念-汇总

    对象和类 对象是对客观事物的抽象,类是对对象的抽象.类是一种抽象的数据类型.它们的关系是,对象是类的实例,类是对象的模板. 抽象(Abstraction) 抽象是简化复杂的现实问题的途径. 封装 封装 ...

最新文章

  1. Python装饰器是什么?使用Python装饰器实现计算程序(函数)运行时间的功能
  2. promethues集成nomad
  3. 统计 Github 2021 贡献过的开源项目
  4. echars显示折点数据_数据可视化的基础语法
  5. directui 3d界面引擎_美术设计师浅谈AR/VR中3D建模设计的工具、挑战与区别
  6. SQL SERVER: 合并相关操作(Union,Except,Intersect)
  7. 《线性代数》同济六版 总结
  8. chorme流程图设计插件gliffy 的加载
  9. 路由器k2固件改系统时间
  10. IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。
  11. 【opencv学习之十二】opencv滑条及实例
  12. linux 编辑模式使用sed,sed命令的用法和vim编辑器的使用
  13. 从身份证获取出生年月日
  14. 《有一种失败叫瞎忙》读书笔记
  15. zblogphp 广告联盟_天兴工作室:广告位大全插件(网站各种广告位集合效果)
  16. python tkinter stringvar_关于tkinter StringVar()
  17. OneFlow 的 Global Tensor 学习笔记和实习总结
  18. jmeter代理服务器录制脚本教程(入门篇)
  19. 手把手教你写个微信小程序
  20. 《程序员》 -- 互联网系统架构的演进

热门文章

  1. 生而神灵,弱而能言,幼而徇齐,长而敦敏,成而聪明
  2. 在微信公众号中使用JQueryWeui组件实现文件上传
  3. DDR SDRAM内存优化
  4. TypeScript Property ‘XXX‘ does not exist on type ‘never‘
  5. jQuery 效果 - stop() 方法
  6. 心有景旗,志存远方——湖南安全技术职业学院美和易思愿景图活动
  7. ThunderSoft Apple Music Converter Mac(drm限制解除工具)
  8. Mybatis多表新增
  9. 香槟分校计算机研究生专业,伊利诺伊大学香槟分校计算机专业排名好不好?
  10. moss列表 查看字段长度