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

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

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/chimomo/article/details/99746018