摘要:
设计模式转载一篇博文: https://bugstack.cn/itstack-demo-design/2020/07/02/%E9%87%8D%E5%AD%A6-Java-%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%AE%9E%E6%88%98%E7%8A%B 阅读全文
摘要:
概念: 将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。· 作用 (1)统一了组合对象和叶子对象(2)简化了客户端调用(3)易扩展,松耦合,组合对象和叶子对象能结合在一起工作 使用场景 (1) 在具有整体和部分的层次结构中,希望通过一种方式忽 阅读全文
摘要:
概述 通过一个抽象类定义一个公共骨架,生成类的步骤都通过这个骨架完成。公共的部分可以通过抽象类中的方法完成,对于不同子类需要执行的不同逻辑,子类可以实现这些抽象方法完成。 使用场景 1.算法或操作遵循相似的逻辑; 2.多个子类有相同方法 UML图 抽象模板(Abstract Template)角色有 阅读全文
摘要:
装饰者模式 装饰者模式以对客户端透明的方式扩展原有对象的功能,不通过继承的方式,比使用子类更加灵活,原有子类结构也无需改变,不影响子类。 使用场景,及优缺点使用场景: 替代继承,扩展一个类的功能 动态的给一个对象添加功能,以及动态的撤销该功能优点 动态扩展一个实现类的功能,在不需要添加功能的时候,可 阅读全文
摘要:
概述 策略模式是对具体算法和逻辑的包装,把使用算法的责任和算法本身分开,系统可以在对应情况下动态选择集中算法中的一种,实现某个特定功能。 客户端增加行为不用修改源代码,只需要添加一个子类,可以减少if else的使用。 UML Context(上下文对象):持有Strategy的上下文对象,调用op 阅读全文
摘要:
省略kafka和zookeeper的安装,直接开始server的配置 修改conf/example下的instance.properties文件 # mysql的master地址,账号及密码 canal.instance.master.address=127.0.0.1:13306 canal.in 阅读全文
摘要:
github地址:https://github.com/alibaba/canal/wiki 简介 canal我理解是基于Mysql binary log的数据同步中间件。mysql作为master,canal模拟slave,发送请求,作为master的Mysql推送binary log给canal 阅读全文
摘要:
概述 以电源插座为例,有三孔插头和二孔插头,各个国家标准不一,国外版笔记本如果想在国内插上插头充电,我们肯定都会准备一个转接头将三孔插头/二孔插头转为跟笔记本电源插头来匹配,充上电。这是我们生活中的适配器。 在java中,我们把一个类的接口转换成客户端想要的另一个接口(也就是把国内插孔,转为国外插孔 阅读全文
摘要:
概念: 什么是代理模式: 为其他对象提供一种代理,来控制对这个对象的访问;有些情况下一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用 作用 1.隐藏委托类的具体实现 2.实现客户端和委托类的解耦,不改动委托类的情况下增加功能(如日志) 类图 以去超市买东西 阅读全文
摘要:
概述 原型模式即为有一个样例模板,用户可以从这个模板中克隆出一个一样的对象。 使用场景 1.创建对象时,不仅继承父类结构,还包括继承原型对象的数据; 2.对目标对象的修改,不影响原型对象; 3.隐藏clone操作; UML图 client:客户端角色 Prototype:抽象原型角色,抽象类/接口, 阅读全文