分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

一般来说,工厂模式是为了把创建一个对象的操作都集中在一起管理,其他所有需要用到这个对象的代码都调用工厂类来创建对象。在UI自动化中,工厂类有一个重要的作用就是提供数据的能力。如果我们创建的类型更复杂的话,可以考虑引入工厂模式和抽象工厂模式。 但实际上最常用的还是简单工厂,工厂模式、抽象工厂基本上很少用。使用设计模式的时候最容易出现的问题就是过度设计,把过于复杂的模式硬搬到项目中来,这是不可取的。

那接下来说一说工厂存在的意义吧。简单工厂算是设计模式里最简单的了,简单到它几乎不是一个什么模式。它其实只有一种思想,就是把创建一个东西的操作都统一放到一起,调用方只需要知道我要一个东西,我需要把什么参数传递进来就可以得到这个东西。至于如何创建这个东西它不需要知道,里面包含了多复杂的UI操作它也不需要知道。这样做的好处是:

  • 代码复用。我们使用工厂创建的东西一般都是比较复杂的,需要很多的步骤才能创建。如果只是随便new一下就可以得到的对象也就犯不着专门搞个工厂方法了。如果任由写Case的人根据自己的想法去创建这些对象,不仅造成了很多的重复代码,而且这些碎片的代码在后期的维护上也是一个难以接受的事情。

  • 封装变化。我们把创建东西的所有操作都统一放在一起,之后如果创建的操作发生变化,比如需求有变动,那我们只需要改动这一处就可以了,而且调用方也完全不感知。

  • 解耦。就如开始说的那个设计原则一样,调用方不感知复杂的创建过程,达到解耦的作用。在UI自动化中,尤其是业务逻辑特别复杂的大型项目中,多人协作有个比较重要的点在这里提一下:就是解耦,不要让其他模块的人感知自己模块的任何实现细节。他们了解的越少,操作的越少, 出错的概率就越小,学习成本就越小。画地为界,分而治之。其实个人觉得整个设计模式就是在解决两件事情:解耦和代码复用。

这里直接上一个例子, 在我的项目中有这样一个场景, 我们的测试都分模块的, 不同的模块有不同的 QA。 测试模型中心模块的 QA 想要测试的话就需要依赖建模 IDE 来产出各种各样的模型。 那根据上一个帖子我讲到的一个设计原则--模块间有数据依赖的时候。每个模块自己负责提供对外接口。 模型 IDE 的 QA 需要提供一个可以生产出各种不同模型的 API 来。 如下:

上面我们我们用一个简单工厂来实现创建各种模型。 其他模块调用此工厂方法满足自己对模型的需求。

Software Testing - UI自动化测试常用设计模式之工厂(Java)相关推荐

  1. Software Testing - UI自动化测试设计规范

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 总体规则 所有模块设计均遵循POM(Page Obj ...

  2. Unity3D常用设计模式之工厂模式

    Unity3D常用设计模式<工厂模式>   工厂模式(Factory Pattern)是游戏开发中比较常用的设计模式.这种类型的设计模式属于创建型模式,它提供了一种创建对象实例的最佳方式. ...

  3. Android常用设计模式之工厂模式理解

    Android常用设计模式之工厂模式 前言 工厂模式 普通工厂模式 普通工厂模式例子 简单工厂模式总结: 简单工厂模式优缺点: 抽象工厂模式 抽象工厂模式的例子 抽象工厂模式小结 抽象工厂模式优缺点 ...

  4. Spring常用设计模式--简单工厂模式

    本专栏内容参考自:咕泡学院Tom老师的<Spring5核心原理与30个类手写实战>,仅作个人学习记录使用,如有侵权,联系速删. 工厂模式的由来:   在现实生活中我们都知道,原始社会自给自 ...

  5. 初学Java常用设计模式之——工厂模式

    声明:转载请附上原文链接 提示:标题序号从2开始,是照应不同设计模式笔记发布的顺序而定的,比如,第上一篇文章 初学Java常用设计模式之--单例模式 序号从1开始 2. 工厂模式(常用) ⼯⼚模式介绍 ...

  6. Android app UI自动化测试 常用的元素定位方法

    本文简要介绍了移动端Android APP进行UI自动化测试时,常用到的元素定位方法 目录 前言 一.通过resource-id定位 二.通过class name定位 三.通过accessibilit ...

  7. UI自动化测试 - POM设计模式

    一.介绍 基于selenium 的ui自动化测试核心上只要定位到元素,对元素执行相应的操作即可.例如下面的脚本代码:打开Chrome浏览器,在百度页面搜索自动化测试: from selenium im ...

  8. 软件测试|测试开发之路--UI 自动化常用设计模式

    接上一次的帖子,今天讲一下我再 UI 自动化中常用的设计模式. 由于网上已经有非常多的文章详细讲解了设计模式的编码实现,所以我今天也就不讲实现细节了. 就是讲我也讲不出什么花来,只是网上的文章基本都是 ...

  9. 常用设计模式-抽象工厂

    模式简介 工厂模式主要是为创建对象提供了接口.工厂模式按照<Java与模式>中的提法分为三类: 1. 简单工厂模式(Simple Factory) 2. 工厂方法模式(Factory Me ...

最新文章

  1. JAVA——获取classpath文件路径空格转变成了转义字符(%20)的问题解决方案
  2. php遍历中记录所有,php遍历类中包含的所有元素的方法
  3. P2468 [SDOI2010]粟粟的书架 动态规划,主席树,二分答案
  4. 【轻松一刻】计算公式:为什么我们都是猪
  5. Castle.ActiveRecord 学与练[3]
  6. SQL必知必会-创建表和操纵表
  7. 腾讯QQ PC版9.1.7正式版上线 有些“老”功能越来越好用了
  8. 数据结构-栈(先进后出表)
  9. 盘点大数据分析AI工具的常用算法
  10. 《功夫》– 技穷后的挣扎
  11. 创建型模式大全(Java讲解)
  12. windows11没有ie浏览器解决办法
  13. rust+mysql+prep+exec_Rust + Flutter 高性能的跨端尝试
  14. 如何利用Java进行高效的彩信群发
  15. 如何用ipad控制多台电脑主机
  16. 应用宝上架审核要求_Android应用商店上架审核要求
  17. @Autowried注入方式
  18. 练习-编写函数对结构体类型数据进行排序
  19. python灰帽编程_灰帽Python的Python
  20. 语音降噪中“音乐噪声“的处理方法

热门文章

  1. 探讨关于Flash Player的更多线索(22.12.28更新)
  2. matlab编程勒让德多项式展开例题解析,第19 勒让德多项式 球函数习题及解答
  3. 八、Linux全套大总结
  4. c语言蚂蚁王国的货币系统,蚂蚁王国的探索之旅
  5. PyTorch笔记 - MAE(Masked Autoencoders) PyTorch源码
  6. 微信加好友方法有哪些?
  7. Android Google Face API 增强现实教程
  8. DDIM代码详细解读(4):分类器classifier的网络设计、训练、推理
  9. 伊利洛伊大学厄巴纳-香槟分校计算机专业,申请伊利诺伊大学香槟分校计算机科学专业需要具备哪些条件?看完文章你就清楚了...
  10. 365天挑战LeetCode1000题——Day 116 第315场周赛 「中国银联 力扣」