11 2020 档案

摘要:命令模式:将命令的请求和执行解耦,使面向客户端的命令参数化 核心:(组合)控制器(Controller) + 命令接口(IAction),实现命令参数化 角色: 客户端:只需将命令参数发送给控制器即可 控制器Controller:接受命令参数后,①完成命令参数到命令对象的解析,②调用对应命令对象的执 阅读全文
posted @ 2020-11-29 22:48 祁奇 阅读(63) 评论(0) 推荐(0)
摘要:迭代器模式:为集合提供一套统一的遍历方式,而不暴露集合内部的数据结构细节 核心:实现Iterator{hasNext(),next()}接口,为集合数据遍历提供统一的方式 public interface Iterator<E> { boolean hasNext(); E next(); defa 阅读全文
posted @ 2020-11-29 22:47 祁奇 阅读(133) 评论(0) 推荐(0)
摘要:桥接模式:当类中存在两个维度的职责时,根据职责拆分成抽象部分角色和实现部分角色(组合关系),使两部分可以独立变化 核心:职责拆分,组合关系实现弱关联(解耦),面向接口编程提高系统灵活性 场景: 类中存在两个维度,其中一个维度依赖(接口,组合关系)于另一个维度的功能 框架中,Manager部分和依赖接 阅读全文
posted @ 2020-11-29 22:45 祁奇 阅读(75) 评论(0) 推荐(0)
摘要:适配器模式(包装器: 接口转换):将类的接口转换成别的规格,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 核心:接口规格转换,对于线上系统,已有稳定运行的源角色和目标角色,在不改动源角色和目标角色代码的前提下,将源角色对象用于目标角色的接口 角色: 适配器(Adapter):处理转换逻辑 阅读全文
posted @ 2020-11-29 22:43 祁奇 阅读(86) 评论(0) 推荐(0)
摘要:混合模式(整体-部分模式):将对象组合成树形结构以表示“部分-整体”的层次结构,使单个对象(叶)和复合对象(枝)的使用具有一致性 核心:使对叶和枝的操作具备一致性,①简化客户端的使用,②节点自由增加 角色: 抽象节点(Component): (安全模式下)定义形成组合的叶和枝之间的共性部分(枝作为个 阅读全文
posted @ 2020-11-28 23:41 祁奇 阅读(1178) 评论(0) 推荐(0)
摘要:享元模式:①将对象的公共部分抽取出来成为内部状态(实现共享),②将随时间改变、不可共享的部分作为外部状态(通过更换外部状态实现对象复用),从而减少创建对象的数量,以减少内存开销和提高性能。 核心:共享和复用,共享(内部状态 - intrinsicState),复用(外部状态 - extrinsicS 阅读全文
posted @ 2020-11-28 23:38 祁奇 阅读(289) 评论(0) 推荐(0)
摘要:装饰器模式(包装器: 功能增强):动态的给一个对象添加一些额外的职责(是继承的替代,但相比继承而言,组合的方式更具灵活性) 实现方式:(组合)装饰类(Decorator) + 被装饰接口(IComponent) - 动态地对Component对象的功能进行增强,避免了继承的弊端(尤其是多重继承) 核 阅读全文
posted @ 2020-11-27 20:29 祁奇 阅读(70) 评论(0) 推荐(0)
摘要:门面模式:对于一个子系统,高层模块与其通信必须通过一个统一的对象进行,降低高层模块与子系统的耦合程度 核心:封装/隔离,降低模块之间的依赖 子系统与高层之间通过facade对象完成通信,底层的修改不会影响高层代码 访问者无需知晓底层模块的组件结构,只需和facade进行通信即可 - 保持facade 阅读全文
posted @ 2020-11-27 20:27 祁奇 阅读(84) 评论(0) 推荐(0)
摘要:责任链模式:当多个Handler都有机会处理同一个请求时,可以让这些Handler形成一条链,并沿着这条链传递该请求 核心:请求与处理解耦合,通过链依次传递处理。 案例:拦截器链,pipeline处理链 general // 责任链模式:使请求和处理解耦,只需把请求传入链中,即可让请求被链中的所有节 阅读全文
posted @ 2020-11-26 22:36 祁奇 阅读(83) 评论(0) 推荐(0)
摘要:代理模式:为其他对象提供一种代理以控制对这个对象的访问 - 访问者通过代理对象间接访问被代理对象,使代理对象对被代理对象实现控制 实现方式:(组合)控制类(Proxy) + 执行逻辑接口(ISubject),由proxy封装了对subject的访问,在访问subject方法前后可以织入其他逻辑(功能 阅读全文
posted @ 2020-11-25 19:16 祁奇 阅读(161) 评论(0) 推荐(0)
摘要:策略模式:定义一组实现相同接口的类,高层模块根据场景实例化合适的对象 委派模式:委派类持有被委派类的引用,并由委派类完成任务的分发、调度 策略模式和委派模式的实现方式是一样的: (组合)单控制类 + 执行逻辑接口,通过创建不同的执行逻辑子类,完成解耦和复用 是不同侧重下的不同描述: 策略模式:侧重实 阅读全文
posted @ 2020-11-24 20:53 祁奇 阅读(400) 评论(0) 推荐(0)
摘要:定义:将一个复杂对象的构建与它的表示分离,使得同样的构建方法可以创建不同的表示 - 将对象地构造过程和组成部件解耦 功能:可选择的组装式创建对象 - (定制化创建产品)允许用户根据需求定制化创建自己所需的产品。 使用场景: 零件装配(注重零件类型):有选择地将多种零件装配成产品 - 此时,接口地调用 阅读全文
posted @ 2020-11-23 19:45 祁奇 阅读(107) 评论(0) 推荐(0)
摘要:原型模式:通过拷贝原型实例,生成一个新的对象(java中,多专指实现Cloneable接口对象) 实现原理: clone的实现是在内存中直接拷贝二进制流,无需经过构造函数(native方法,上帝后门)。 通过cloneable接口标记对象是否有权触发object.clone()方法。 优点: clo 阅读全文
posted @ 2020-11-22 21:55 祁奇 阅读(112) 评论(0) 推荐(0)
摘要:抽象父类定义算法的框架,而将一些实现步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 protected abstractMethod():基本方法,由子类实现 public final templateMethod():模板方法,final标签防止修改(对外接口) 阅读全文
posted @ 2020-11-21 19:56 祁奇 阅读(62) 评论(0) 推荐(0)
摘要:①:将对象的创建过程封装在工厂类中,使对象复杂的创建过程与程序业务逻辑解耦 ②:屏蔽产品类,用户只需关心产品的接口,只要接口保持不变,系统中的上层模块就不需要变化(如jdbc驱动)。 简单工厂模式:一个factory负责所有产品的创建(1:N),不易扩展 工厂方法模式:N个factory负责M个产品 阅读全文
posted @ 2020-11-20 20:38 祁奇 阅读(108) 评论(0) 推荐(0)
摘要:优点: 只有一个实例,减少内存开支,减少创建销毁和初始化的性能开销 可以避免资源的多重占用,一种资源操作只有一个实例进行操作 提供全局访问点,优化和共享资源访问 缺点: 单例模式要求自行实例化,并提供单一实例,因此单例对象的扩展只能对其自身进行修改 单例模式与开闭原则、单一职责原则冲突 饿汉式单例 阅读全文
posted @ 2020-11-19 20:02 祁奇 阅读(302) 评论(0) 推荐(1)
摘要:接口(or 抽象类)负责定义public属性和方法,并且声明与其他对象的依赖关系(模型构建) 抽象类负责公共构造部分的实现(抽象是所有子类的共性封装) 实现类实现业务逻辑,同时在适当的时候对父类进行细化。 开闭原则(Open-Closed Principle) 一个软件实体如类、模块和函数,应该对扩 阅读全文
posted @ 2020-11-18 19:13 祁奇 阅读(196) 评论(0) 推荐(0)
摘要:六大设计原则 | 开闭原则(Open-Closed Principle) | 对扩展开放,对修改关闭 | | | | | | 依赖倒置原则(Dependence Inversion Principle) | 面向接口编程 - 抽象构建框架,实现扩展细节 | | 单一职责原则(Single Respo 阅读全文
posted @ 2020-11-18 19:12 祁奇 阅读(160) 评论(0) 推荐(0)
摘要:阿里巴巴Java开发规约IDEA插件:IDEA - settings - Plugins - Alibaba Java Coding Guidelines IntelliJ IDEA debug调试工具:evaluate express(debug状态下:alt + f8) Mybatis快速生成插 阅读全文
posted @ 2020-11-18 19:09 祁奇 阅读(275) 评论(0) 推荐(0)
摘要:命名规约 代码应清爽统一、便于阅读和维护,牺牲部分自己的代码习惯去提升团队整体的代码整洁是有必要的 统一的代码风格可以让开发工程师们没有严重的代码心理壁垒,每个人都可以轻松地阅读并快速理解代码逻辑,便于高效协作,逐步形成团队的代码“昧道”。 命名符合本语言规范(java中不允许_和$符号作为开始和结 阅读全文
posted @ 2020-11-18 19:07 祁奇 阅读(233) 评论(0) 推荐(0)