摘要:
定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 例如我们去银行办理业务,要经过取号、排队、办理具体业务等过程,取号、排队对于每个客户都是一样的,可以在父类中实现, 办理具体业务可能每个人都不同,可能是取款,存款, 阅读全文
摘要:
前言 SpringBoot中的starter是一种重要的机制,遵循"约定优于配置"的理念,应用者只需要添加starter的maven依赖, SpringBoot就会自动扫描并加载相应的配置。为了更好的理解SpringBoot的原理,我们定义一个自己的starter。 自定义starter 命名规范 阅读全文
摘要:
定义 将对象组合成树形结构以表示"部分-整体"的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。如电脑中文件和文件夹的结构。 结构 Component,抽象构件,为叶子节点对象和组合对象声明公共接口,并实现它们的默认行为。 Leaf,叶子节点对象,不包含其他的子节点对象。 Compo 阅读全文
摘要:
问题描述 如何查询最近7天内数据? 解决 select * from xxx where datediff(d, d_createdate, getdate()) < 7 核心为 datediff 函数,获取两个日期之间的时间。 datediff(datepart,startdate,enddate 阅读全文
摘要:
定义 提供一种方法顺序访问一个聚合对象中的各个元素,而又不需暴露该对象的内部表示。如我们日常生活中的快递,不管内部是什么物品, 都会被统一打包,我们不需要关心里面是什么,只需要按照目的地发送即可。 结构 Iterator,迭代器接口,定义访问和遍历元素的方法。 ConcreteIterator,具体 阅读全文
摘要:
定义 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 可以类比现实生活中我们使用电视遥控器开关机,或者去餐厅吃饭向服务员点餐的过程,用户不需要知道点的菜是具体哪个厨师做的, 厨师也不需要知道这个菜是哪个用户点的,命令发送者和执行者之 阅读全文
摘要:
定义 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。如微博中一个明星发了一个消息,所有关注的用户都会看到这条消息。 结构 Observer,观察者接口,定义目标通知时对应的更新方法。 ConcreteObserver,具体观察者,接收目标通知 阅读全文
摘要:
前言 我们现实生活中存在很多复杂的 网状结构 的交互关系,例如每个人必须记录他(她)所有朋友的手机号, 如果其中有人的手机号修改了,就必须通知他(她)所有的朋友一起修改,牵一发而动全身,非常复杂, 如果将这种 网状结构 变成 星状结构,将大大降低它们之间的耦合度,添加一个中介者, 在网上建立一个每个 阅读全文
摘要:
IDEA中安装kotlin插件 创建一个kotlin项目 反编译 创建一个kotlin文件 TestDecompile.kt fun main(args: Array<string>) { println(sum2(3, 6)) } fun sum2(num1: Int, num2: Int): I 阅读全文
摘要:
定义 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。可以简单类比于孙悟空用毫毛变化出很多和自己一模一样的小猴兵。 结构 Prototype,原型接口,定义了克隆自身的方法。 ConcretePrototype,具体原型类,实现了原型接口。 Client,使用原型的客户端。 简单实现 阅读全文