接口

设计原则

一曲冷凌霜 提交于 2020-03-07 22:48:31
一、面向对象应用程序开发原则( SOLID ) 1 单一职责原则( SRP ) 定义: 一个类应该只有一个发生变化的原因。这条原则曾被称为内聚性,即一个模块的组成元素之间的功能相关性。 为什么要遵守这条原则? 如果一个类承担的职责过多,就等于把这些职责耦合到了一起。一个职责的变化可能削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。 运用与辨析 例 1 :记录日志 public class Logger { public void LogToFile<T>(T msg); public void LogToDB<T>(T msg); public void LogToWindows<T>(T msg); } 这个例子定义了一个日志类,包含三种方法:将日志写入本地文件、数据库或 windows 系统日志。一般会人为日志类记录日志这个动作算做一个职责,然而事实并非如此,将日志记录到不同的存储介质算作不同的职责。基于这种认识,断定这个类包含了太多的职责,应该将职责分离出来。 例 2 :一个大的业务层类 一个用户履历操作相关的类,包括:用户的教育背景,社会兼职职务,工作经历个人简历,获得的荣誉等,示例如下: public class UserResumeService { #region 社会兼职 //添加社会兼职 public

微信素材管理接口

南笙酒味 提交于 2020-03-07 21:38:01
##素材管理接口 回复图片消息 回复语音消息 回复视频消息 回复音乐消息 在回复这些是需要媒体需要这个选项 <MediaId><![CDATA[media_id]]></MediaId> 此选项通过素材管理接口上传多媒体文件,得到 上传多媒体文件 公众号可调用本接口来上传图片、语音、视频等文件到微信服务器,上传后服务器会返回对应的media_id,公众号此后可根据该media_id来获取多媒体。请注意,media_id是可复用的,调用该接口需http协议。 通常,文件上传是通过html表单进行的,但通过CURL可以不经过浏览器,直接在服务器端进行表单的POST提交,完成文件上传功能。 需要注意的是:文件名必须是完整绝对路径,另外需要绝对路径前加上“@”以示区分。 在Windows服务器上,格式示例为:”@F:\israel\upload\winter.jpg”, 而在Linux服务器上,格式示例为:”@home/israel/upload/winter.jpg”。 上传接口 http请求方式: POST/FORM http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE 参数说明 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图

(三)序列化与反序列化

会有一股神秘感。 提交于 2020-03-07 14:27:35
什么是序列化与反序列化? 序列化是将Java对象转换成与平台无关的二进制流,而反序列化则是将二进制流恢复成原来的Java对象,二进制流便于保存到磁盘上或者在网络上传输。 如何实现序列化与反序列化? 如果想要序列化某个类,就需要让该类实现Serializable接口或者Externalizable接口。 如果实现Serializable接口,由于该接口只是个"标记接口",接口中不含任何方法,序列化是使用ObjectOutputStream(处理流)中的writeObject(obj)方法将java对象输出到输出流中的,反序列化是使用ObjectInputStream中的readObject(in)方法将输入流中的Java对象还原出来。 实践 1.通过实现Serializable接口进行序列化与反序列化 public class Person implements Serializable { private String name; private int age; //此处没有提供无参的构造函数 public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String

设计接口测试自动化

风流意气都作罢 提交于 2020-03-07 13:57:52
思考点 1、id 2、模块名称 3、前置条件 4、接口地址 5、是否携带herders ’6、数据依赖 7、请求数据 8、预期结果 9、实际结果 10、接口类型 1、导入Excel表格,并且操作表格 参考内容:https://www.cnblogs.com/zihkj/p/12163730.html 来源: https://www.cnblogs.com/zihkj/p/12164319.html

设计模式的六大原则

喜欢而已 提交于 2020-03-07 13:06:35
一、单一职责原则(Single Responsibility Principle) 二.开闭原则(Open-Closed Principle, OCP) 三、里氏代换原则(Liskov Substitution Principle, LSP) 四、依赖倒置原则(Dependence Inversion Principle,DIP) 五、接口隔离原则(Interface Segregation Principle, ISP) 六、迪米特法则(Law of Demeter, LoD) 总结 一、单一职责原则(Single Responsibility Principle) 定义:一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有 可能会导致原本运行正常的职责P2功能发生故障。 单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小,而且一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作,因此要将这些职责进行分离,将不同的职责封装在不同的类中,即将不同的变化原因封装在不同的类中

Java的三种代理模式

人走茶凉 提交于 2020-03-07 10:43:11
1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法 举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的代理人(经纪人)来解决.这就是代理思想在现实中的一个例子 用图表示如下: 代理模式的关键点是:代理对象与目标对象.代理对象是对目标对象的扩展,并会调用目标对象 1.1.静态代理 静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类. 下面举个案例来解释: 模拟保存动作,定义一个保存动作的接口:IUserDao.java,然后目标对象实现这个接口的方法UserDao.java,此时如果使用静态代理方式,就需要在代理对象(UserDaoProxy.java)中也实现IUserDao接口.调用的时候通过调用代理对象的方法来调用目标对象. 需要注意的是,代理对象与目标对象要实现相同的接口,然后通过调用相同的方法来调用目标对象的方法 代码示例:静态代理 /**

接口测试 JAVA

早过忘川 提交于 2020-03-07 10:22:11
接口测试框架: https://github.com/test-assured/rest-assured BurpSuite工具扩展机制 定制自己的代理服务器 bmp Json YAML 解析lib : https://gitthub.com/FasterXML/jackso-dataformats-text 模板解析工具: https://mustache.github.io/ jsonpath修改工具: https://github.com.json-path.JsonPAth Junit5 框架: https://junit.org/junit5/docs/current/user-guide/ 测试报告框架: https://github.com/allure-framework/allure2 来源: https://www.cnblogs.com/testingcode/p/12432755.html

19. 接口(创建interface 继承implements)

浪子不回头ぞ 提交于 2020-03-07 08:42:20
1.语法:   interface 接口名{     属性     抽象方法   } 2.实例: 3.注意:   1)类实现接口可以通过 implements 实现,实现接口的时候必须把接口中的所有方法实现 , 一个类可以实现多个接口。 ( 因为里面全部是抽象方法 )   2)接口中定义的所有的属性默认是 public static final 的,即静态常量既然是常量,那么定义的时候必须赋值。   3)接口中定义的方法不能有方法体。接口中定义的方法默认添加 public abstract   4)有抽象函数的不一定是抽象类,也可以是接口类。   5)由于接口中的方法默认都是抽象的,所以不能被实例化。   6)对于接口而言,可以使用子类来实现接口中未被实现的功能函数。   7)如果实现类中要访问接口中的成员,不能使用 super 关键字。因为两者之间没有显示的继承关系,况且接口中的成员成员属性是静态的。可以使用接口名直  接访问。   8)接口没有构造方法 ( 因为接口里面的成员变量都会赋值,不需要构造方法来赋值 ) 。 4.接口的作用分析   1)重要性:     在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。 正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。   2)简单、规范性:    

为什么要使用接口,直接写是实现类不行吗

柔情痞子 提交于 2020-03-07 08:42:06
看到个比喻,很搞笑: 为什么电脑主板上还要有内存插槽,显卡插槽?多浪费机箱空间啊? 直接用电烙铁把显卡和内存的引脚一根一根焊到主板上不就得了。 如果你焊错位置了,说明你焊工不好。 每次拆装的的时候再继续用电烙铁。 下面是转的: https://blog.csdn.net/googleoyyp/article/details/78912259 下面我给大家总结了4点关于JAVA中接口存在的意义: 1、重要性:在 Java语言 中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。 2、简单、规范性:如果一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接口,这些接口不仅告诉开发人员你需要实现那些业务,而且也将命名规范限制住了(防止一些开发人员随便命名导致别的程序员无法看明白)。 3、维护、拓展性:比如你要做一个画板程序,其中里面有一个面板类,主要负责绘画功能,然后你就这样定义了这个类,可是在不久将来,你突然发现这个类满足不了你了,然后你又要 重新设计 这个类,更糟糕是你可能要放弃这个类,那么其他地方可能有引用他,这样修改起来很麻烦,如果你一开始定义一个接口,把绘制功能放在接口里,然后定义类时实现这个接口,然后你只要用这个接口去引用实现它的类就行了

java 接口的作用和好处

孤街醉人 提交于 2020-03-07 08:41:38
1、java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2、一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意义很疑惑。不知道接口到底是有什么作用,为什么要定义接口。 好像定义接口是提前做了个多余的工作。下面我给大家总结了4点关于JAVA中接口存在的意义:   1、重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。   2、简单、规范性:如果一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接口,这些接口不仅告诉开发人员你需要实现那些业务,而且也将命名规范限制住了(防止一些开发人员随便命名导致别的程序员无法看明白)。   3、维护、拓展性:比如你要做一个画板程序,其中里面有一个面板类,主要负责绘画功能,然后你就这样定义了这个类。 可是在不久将来,你突然发现这个类满足不了你了,然后你又要重新设计这个类,更糟糕是你可能要放弃这个类,那么其他地方可能有引用他,这样修改起来很麻烦。 如果你一开始定义一个接口,把绘制功能放在接口里,然后定义类时实现这个接口,然后你只要用这个接口去引用实现它的类就行了,以后要换的话只不过是引用另一个类而已,这样就达到维护