随笔分类 -  java

关于java语言的博客
摘要:定义 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态。 如游戏中的存档,各种编辑器中的后退、撤销功能。 结构 Originator,发起人角色,一个普通的业务处理类,可以根据自身创建备忘录对象,根据备忘录数据恢复自身。 Meme 阅读全文
posted @ 2021-09-07 20:44 strongmore 阅读(94) 评论(0) 推荐(0) 编辑
摘要:定义 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。 类似于我们商城下单,订单有各种状态,不同的状态下可以执行不同的操作。 结构 State,状态接口,用来封装与上下文的一个特定状态所对应的行为。 ConcreteState,具体状态实现类,提供对应状态的具体行为处理。 C 阅读全文
posted @ 2021-09-06 21:00 strongmore 阅读(58) 评论(0) 推荐(0) 编辑
摘要:定义 定义一系列的算法,把它们一个个封装起来,并且使它们可互相替换,本模式使得算法可独立于使用它的客户而变化。 例如我们生活中出行可以选择火车,飞机,私家车等方式,每一种出行方式就可以看做一种策略。 结构 Strategy,策略接口,用来约束一系列具体的策略接口。 ConcreteStrategy, 阅读全文
posted @ 2021-08-30 08:21 strongmore 阅读(180) 评论(0) 推荐(0) 编辑
摘要:定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 例如我们去银行办理业务,要经过取号、排队、办理具体业务等过程,取号、排队对于每个客户都是一样的,可以在父类中实现, 办理具体业务可能每个人都不同,可能是取款,存款, 阅读全文
posted @ 2021-08-29 11:58 strongmore 阅读(56) 评论(0) 推荐(0) 编辑
摘要:定义 将对象组合成树形结构以表示"部分-整体"的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。如电脑中文件和文件夹的结构。 结构 Component,抽象构件,为叶子节点对象和组合对象声明公共接口,并实现它们的默认行为。 Leaf,叶子节点对象,不包含其他的子节点对象。 Compo 阅读全文
posted @ 2021-08-26 20:36 strongmore 阅读(69) 评论(0) 推荐(0) 编辑
摘要:问题描述 如何查询最近7天内数据? 解决 select * from xxx where datediff(d, d_createdate, getdate()) < 7 核心为 datediff 函数,获取两个日期之间的时间。 datediff(datepart,startdate,enddate 阅读全文
posted @ 2021-08-25 21:22 strongmore 阅读(1297) 评论(0) 推荐(0) 编辑
摘要:定义 提供一种方法顺序访问一个聚合对象中的各个元素,而又不需暴露该对象的内部表示。如我们日常生活中的快递,不管内部是什么物品, 都会被统一打包,我们不需要关心里面是什么,只需要按照目的地发送即可。 结构 Iterator,迭代器接口,定义访问和遍历元素的方法。 ConcreteIterator,具体 阅读全文
posted @ 2021-08-22 20:53 strongmore 阅读(55) 评论(0) 推荐(0) 编辑
摘要:定义 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 可以类比现实生活中我们使用电视遥控器开关机,或者去餐厅吃饭向服务员点餐的过程,用户不需要知道点的菜是具体哪个厨师做的, 厨师也不需要知道这个菜是哪个用户点的,命令发送者和执行者之 阅读全文
posted @ 2021-08-21 20:23 strongmore 阅读(137) 评论(0) 推荐(0) 编辑
摘要:定义 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。如微博中一个明星发了一个消息,所有关注的用户都会看到这条消息。 结构 Observer,观察者接口,定义目标通知时对应的更新方法。 ConcreteObserver,具体观察者,接收目标通知 阅读全文
posted @ 2021-08-18 21:54 strongmore 阅读(228) 评论(0) 推荐(1) 编辑
摘要:前言 我们现实生活中存在很多复杂的 网状结构 的交互关系,例如每个人必须记录他(她)所有朋友的手机号, 如果其中有人的手机号修改了,就必须通知他(她)所有的朋友一起修改,牵一发而动全身,非常复杂, 如果将这种 网状结构 变成 星状结构,将大大降低它们之间的耦合度,添加一个中介者, 在网上建立一个每个 阅读全文
posted @ 2021-08-16 20:28 strongmore 阅读(84) 评论(0) 推荐(0) 编辑
摘要:定义 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。可以简单类比于孙悟空用毫毛变化出很多和自己一模一样的小猴兵。 结构 Prototype,原型接口,定义了克隆自身的方法。 ConcretePrototype,具体原型类,实现了原型接口。 Client,使用原型的客户端。 简单实现 阅读全文
posted @ 2021-08-13 21:26 strongmore 阅读(48) 评论(0) 推荐(0) 编辑
摘要:定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 结构 Product,被构建的复杂产品,一般包含多个部件。 Builder,建造者接口,定义了构建复杂对象的多个部件的方法。 ProductBuilder,具体建造者,实现了建造者接口。 Director,指挥者,负责 阅读全文
posted @ 2021-08-11 22:40 strongmore 阅读(38) 评论(0) 推荐(0) 编辑
摘要:定义 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 结构 ProductFactory,抽象产品工厂,声明了一组创建一簇产品的工厂方法,每一个方法对应一种产品。 MobileProduct,ComputerProduct,抽象产品,工厂方法返回的接口类型。 HuaweiPro 阅读全文
posted @ 2021-08-10 20:55 strongmore 阅读(66) 评论(0) 推荐(0) 编辑
摘要:定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 结构 ProductFactory,抽象产品工厂,声明了一个工厂方法,返回一个抽象的产品。 Product,抽象产品,工厂方法返回的接口类型。 ConcreteProductFactory,具体工厂, 阅读全文
posted @ 2021-08-10 10:01 strongmore 阅读(96) 评论(0) 推荐(0) 编辑
摘要:前言 Tablesaw是一个用来进行数据分析和可视化显示的java库,这里是官方文档,类似python中的Pandas库。 引入maven依赖 <dependency> <groupId>tech.tablesaw</groupId> <artifactId>tablesaw-jsplot</art 阅读全文
posted @ 2021-08-09 08:16 strongmore 阅读(7950) 评论(0) 推荐(0) 编辑
摘要:定义 将一个类的接口转换成客户希望的另一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。可以简单类比我们生活中的变压器,数据线转接口等工具。 结构 Target,客户端需要的和特定领域相关的接口。 Adaptee,已经存在的功能实现,但是接口与客户端要求的特定领域接口不一 阅读全文
posted @ 2021-08-08 08:03 strongmore 阅读(113) 评论(0) 推荐(0) 编辑
摘要:前言 Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 环境配置 下载对应浏览器驱动 这里使用Chrome浏览器,根据自己当前安装Chrome的版本来选择,下载地址,放到一个指定目录下,如 D:\Temp\chromedrive 阅读全文
posted @ 2021-08-07 00:02 strongmore 阅读(4617) 评论(0) 推荐(0) 编辑
摘要:定义 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 结构 模块,接受Facade的委派,真正实现功能。 Facade,定义子系统的多个模块对外的高层接口,通常需要调用内部多个模块,将客户端的请求委派给适当的模块。 简单实现 模块A publ 阅读全文
posted @ 2021-08-05 20:51 strongmore 阅读(39) 评论(0) 推荐(0) 编辑
摘要:定义 提供一个创建对象实例的功能,而无需关心其具体实现,被创建实例的类型可以是接口,抽象类,也可以是具体的类。 结构 Api,客户所需要的功能接口。 ApiImpl,功能接口的实现,可以有多个。 ApiFactory,工厂角色,来创建具体的功能对象,一般实现成一个工具类,直接使用静态方法。 Clie 阅读全文
posted @ 2021-08-04 22:11 strongmore 阅读(72) 评论(0) 推荐(0) 编辑
摘要:前言 Receiver Parameter,翻译过来就是接受者参数,举一个例子 public class Person { public void test(Person this) { } } 我们声明了一个实例方法,第一个参数为当前实例本身,这种写法和下面的写法没有什么区别 public cla 阅读全文
posted @ 2021-07-31 14:10 strongmore 阅读(296) 评论(0) 推荐(0) 编辑