element

设计模式学习笔记(二十六):访问者模式

谁说胖子不能爱 提交于 2020-08-05 20:35:58
1 概述 1.1 引言 患者就医时,医生开具处方后通常由药房工作人员准备药品,由划价人员根据药品数量计算总价,这里,可以将处方看作是一个药品信息的集合,里面包含了一种或多种不同类型的药品信息,不同类型的工作人员在操作同一个药品信息集合时将提供不同的处理方式,而且可能还会增加新类型的工作人员来操作处方单。 在软件开发中,有时候也需要处理像处方单这样的集合结构,在该对象结构中存储了多个不同类型的对象信息,而且对同一对象结构中的元素的操作方式不唯一,可能需要提供多种不同的处理方式,还有可能增加新的处理方式。这时候可以使用访问者模式进行处理。 访问者模式是一种较为复杂的行为型设计模式,它包含访问者与被访问者两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操作。访问者模式使得用户可以在不修改现有系统的情况下扩展系统的功能,为这些不同类型的元素增加新的操作。 1.2 定义 访问者模式:提供一个作用于某对象结构中的各元素的操作表示,它使得可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 访问者模式是一种对象行为型模式。 1.3 结构图 1.4 角色 Visitor (抽象访问者):为每一个具体元素类声明一个具体访问者的操作 ConcreteVisitor (具体访问者):实现抽象访问者中的操作 Element (抽象元素):接口/抽象类

selenium--上传文件、模拟键盘输入

走远了吗. 提交于 2020-08-05 16:47:20
上传文件 driver.get('https://tinypng.com/' ) #进入目标页面 driver.find_element_by_css_selector('.target .icon' ).click() #点击上传 time.sleep(1 ) #开始上传文件,利用windows直接敲键盘的原理 import win32com.client #调用相应库(此处为window库) shell=win32com.client.Dispatch("WScript.Shell" ) #调用shell的固定用法,不变照抄 shell.Sendkeys(r'd:\baidu.png'+'\n') #模拟键盘输入,并按回车 模拟键盘输入 import win32api import win32con win32api.keybd_event(win32con.VK_NUMPAD0,0 ) #按数字0 win32api.keybd_event(win32con.VK_RETURE,0 ) #按回车键 win32api.keybd_event(win32con.VK_SPACE,0 ) #按空格 win32api.keybd_event(win32con.VK_ADD,0) #按+号 来源: oschina 链接: https://my.oschina.net/u/4274162

python+selenium基础之XPATH定位(第一篇)

心已入冬 提交于 2020-08-05 15:38:17
世界上最远的距离大概就是明明看到一个页面元素站在那里,但是我却定位不到!! selenium定位元素的方法有很多种,像是通过id、name、class_name、tag_name、link_text等等,但是这些方法局限性太大,拿id属性来说,首先一定不会每个元素都有id属性,其次元素的id属性也不一定是固定不变的。所以这些方法了解一下即可,我们真正需要熟练掌握的是通过xpath和css定位,一般只要掌握一种就可以应对大部分定位工作了。 下面总结一下xpath的定位方法,结合自己练习的实例加深一下了解 一、首先需要了解一下xpath的概念和基本语法 网上关于xpath的教程比较少,可以看一下菜鸟教程和w3cschool的相关资料: http://www.runoob.com/xpath/xpath-tutorial.html 、 http://www.w3school.com.cn/xpath/index.asp 二、常用的xpath定位方法 1.利用标签内的属性进行定位 (1)通过id属性 xpath = " //a[@id='start_handle'] " //a 表示选取所有a元素,加上[@id= ' start_handle ' ]表示选取id属性为 ' start_handle ' 的a元素 (2)通过name属性定位 xpath = " //input[@name=

XML--解析

别说谁变了你拦得住时间么 提交于 2020-08-05 15:34:06
XML--解析 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 解析 操作xml文档,将文档中的数据读取到内存中 操作xml文档 解析(读取):将文档中的数据读取到内存中 写入:将内存中的数据保存到xml文档中。持久化的存储 解析xml的方式 DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树 优点:操作方便,可以对文档进行CRUD的所有操作 缺点:占内存 SAX:逐行读取,基于事件驱动的。 优点:不占内存。 缺点:只能读取,不能增删改 xml常见的解析器 JAXP:sun公司提供的解析器,支持dom和sax两种思想 DOM4J:一款非常优秀的解析器 Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 PULL:Android操作系统内置的解析器,sax方式的。 Jsoup快速入门 步骤: 导入jar包 获取Document对象 获取对应的标签Element对象 获取数据 代码 //2.1获取student.xml的path String path = JsoupDemo1.class.getClassLoader().getResource(

IntelliJ IDEA 常用插件

谁说我不能喝 提交于 2020-08-05 13:42:03
工欲善其事,必先利其器。本文收集 IntelliJ IDEA 常用插件,持续更新中...... Alibaba Java Coding Guidelines 阿里巴巴《Java 开发手册》配套插件,可以实时检测代码中不符合手册规约的地方,助你码出高效,码出质量。 使用: 当我们违反手册规约时,该插件会自动检测并进行提示。 同时提供了一键检测所有代码规约情况和切换语言的功能。 如果你想修改某条规约的检测规则的话,可以通过设置的 Editor -> Inspections 进行修改。 Easy Code EasyCode 用于 代码自动生成 ,支持模板自定义、导入、导出,方便团队之间共享。 介绍: 基于 IntelliJ IDEA 开发的代码生成插件,支持自定义任意模板(Java,html,js,xml)。 只要是与数据库相关的代码都可以通过自定义模板来生成。支持数据库类型与 java 类型映射关系配置。 支持同时生成生成多张表的代码。每张表有独立的配置信息。完全的个性化定义,规则由你设置。 具体使用见: IntelliJ IDEA 插件 EasyCode(代码自动生成) Lombok Lombok 为 Java 项目提供了非常有趣的附加功能,使用它的注解可以有效的地解决那些繁琐又重复的代码,例如 Setter、Getter、toString、equals、hashCode

How to safely inject props into React children?

让人想犯罪 __ 提交于 2020-08-05 11:08:59
问题 I am building a React component which delays the unmounting of its children in order to animate them. When unmounting, I would like to pass in an additional prop (for example, a data-attribute or a class name) in order to handle animations. This is a specific instance of a general situation where I want override certain properties of children. I have come to realize that the following pattern does exactly what I want: this.props.children.map(child => <child.type key={child.key} ref={child.ref

How to safely inject props into React children?

社会主义新天地 提交于 2020-08-05 11:08:56
问题 I am building a React component which delays the unmounting of its children in order to animate them. When unmounting, I would like to pass in an additional prop (for example, a data-attribute or a class name) in order to handle animations. This is a specific instance of a general situation where I want override certain properties of children. I have come to realize that the following pattern does exactly what I want: this.props.children.map(child => <child.type key={child.key} ref={child.ref

How to safely inject props into React children?

僤鯓⒐⒋嵵緔 提交于 2020-08-05 11:08:52
问题 I am building a React component which delays the unmounting of its children in order to animate them. When unmounting, I would like to pass in an additional prop (for example, a data-attribute or a class name) in order to handle animations. This is a specific instance of a general situation where I want override certain properties of children. I have come to realize that the following pattern does exactly what I want: this.props.children.map(child => <child.type key={child.key} ref={child.ref

How to safely inject props into React children?

纵饮孤独 提交于 2020-08-05 11:08:32
问题 I am building a React component which delays the unmounting of its children in order to animate them. When unmounting, I would like to pass in an additional prop (for example, a data-attribute or a class name) in order to handle animations. This is a specific instance of a general situation where I want override certain properties of children. I have come to realize that the following pattern does exactly what I want: this.props.children.map(child => <child.type key={child.key} ref={child.ref

如何使用Dynamic Web TWAIN从网络摄像头捕获图像

元气小坏坏 提交于 2020-08-05 09:42:13
如何通过浏览器访问网络摄像头? HTML5 为Web开发人员提供了JavaScript API MediaDevices.getUserMedia()。在本指南中,我们将使用Dynamic Web TWAIN SDK网络摄像头插件构建一个在线网络摄像头演示。 为什么选择Dynamic Web TWAIN网络摄像头附加组件 为什么有免费的选项时考虑付费选项?我们列出了HTML5不提供的网络摄像头附加组件的一些高级功能。 浏览器兼容性 – HTML5与某些较旧的浏览器不兼容,例如Internet Explorer 8。 精确控制网络摄像头 –您可以完全控制摄像机,例如摇摄,倾斜,滚动,变焦,曝光,光圈和自动对焦。 分辨率设置 –使用GetResolution(),SetResolution()API获取和设置分辨率 扫描仪质量的图像 – Dynamsoft提供了多种图像增强技术来帮助用户生成高质量的图像,包括自动边界检测,噪声消除和透视校正。 上载到服务器 – SDK提供了内置方法,供用户将图像上载到服务器端。 如果您要构建一个健壮的,功能齐全的企业级应用程序,那么选择Dynamsoft的SDK这样的商业SDK将会为您带来巨大的投资回报。 关于Dynamic Web TWAIN网络摄像头附加组件 Dynamic Web