上一页 1 2 3 4 5 6 7 ··· 12 下一页
摘要: 再jdk中的io类库中,组合优于继承的设计思路 装饰器类的作用: 可以对原始类“嵌套”多个装饰器类; InputStream in = new FileInputStream("xxxx.txt"); InputStream bin = new BufferedInputStream(in);//嵌 阅读全文
posted @ 2022-12-27 10:59 lq-12040 阅读(36) 评论(0) 推荐(0)
摘要: 代理模式:将代理对象替换了原始对象,代理类执行的方法替换了原始类执行的方法;将业务功能和其他功能解耦。 代码demo例子: 代理模式的应用场景: 非业务需求开发:监控、鉴权、限流、事务、幂等、日志。spring的aop; rpc中的应用:隐藏网络通信、数据编码解码的逻辑、专注业务开发; 缓存中的应用 阅读全文
posted @ 2022-12-23 15:23 lq-12040 阅读(20) 评论(0) 推荐(0)
摘要: 结构型设计模式:主要总结一些类和对象组合在一起的经典结构,这些经典结构去解决特定应用场景的问题。 代理模式:用来给原始类附加不相关的其他功能; 装饰器模式:用来给原始类附加相关功能(增强功能); 适配器模式:用来解决代码兼容问题; 桥接模式: 门面模式: 组合模式: 享元模式: 复制于设计模式之美 阅读全文
posted @ 2022-12-23 15:23 lq-12040 阅读(32) 评论(0) 推荐(0)
摘要: ####原型模式:利用对原有对象进行复制拷贝的方式创建对象; ####浅拷贝 只拷贝引用对象的引用地址,不拷贝引用对象本身;实际是操作同一个对象;例如:map的clone方法,对于value中的对象都是引用地址的拷贝; ####深拷贝 复制出一个新的对象;操作的是两个对象;如果要做到对map的深拷贝 阅读全文
posted @ 2022-12-23 14:25 lq-12040 阅读(20) 评论(0) 推荐(0)
摘要: 创建型设计模式主要解决对象的创建问题,封装复杂的创建过程;解耦对象的创建逻辑和使用逻辑; **单例模式:**用来创建全局唯一的对象 **工厂模式:**用来创建类型不同但相关的对象(继承同一父类或接口的一组子类),有给定的参数来决定创建哪种类型的对象; **建造者模式:**用来创建同一种类型的复杂对象 阅读全文
posted @ 2022-12-23 11:24 lq-12040 阅读(24) 评论(0) 推荐(0)
摘要: 建造者模式的作用:创建对象; 为什么要使用创建者模式来创建对象,普通的new对象不可以吗? 如果使用构造器来创建对象,当参数值的数量过多时,代码中的构造器数量和形式较混乱,并且给构造器中的参数赋值,且参数数量太多。很容易出错,看起来也不是那么清晰; 如果用无参构造或者有参构造(对一些必填的参数)来n 阅读全文
posted @ 2022-12-23 11:02 lq-12040 阅读(32) 评论(0) 推荐(0)
摘要: ioc:控制反转;将对象的创建、配置、销毁,生命周期的管理交予容器; 容器的核心功能可拆分为: 解析配置 创建对象 对象的生命周期管理 ####解析配置 容器对于一个项目要创建哪些对象,一开始是不清楚的;是靠配置来告知容器它具体要创建哪些对象以及对象的依赖关系等信息;(xml配置、注解) ####创 阅读全文
posted @ 2022-12-22 18:03 lq-12040 阅读(29) 评论(0) 推荐(0)
摘要: 使用场景:创建的对象分类 规则更加复杂。针对情形设计对象层级。 举例: 针对规则配置解析器 json xml yaml properties 针对系统配置解析器 json xml yaml properties 实现说明:让一个工厂负责创建多种不同类型的对象 demo代码: public inter 阅读全文
posted @ 2022-12-13 17:56 lq-12040 阅读(20) 评论(0) 推荐(0)
摘要: 使用场景:对象创建的逻辑比较复杂,且对象种类较多。将创建对象的复杂逻辑放到对应工厂去实现。 优点:比简单工厂更符合开闭原则 缺点:如果创建对象的逻辑很简单,使用这种模式是过度设计 核心demo代码: /** * 工厂方法 * @author lq * @version : RuleConfigSou 阅读全文
posted @ 2022-12-13 17:44 lq-12040 阅读(24) 评论(0) 推荐(0)
摘要: 核心demo代码: public class RuleConfigParserFactory { public static IRuleConfigParser createParser(String configFormat) { IRuleConfigParser parser = null; 阅读全文
posted @ 2022-12-13 17:30 lq-12040 阅读(22) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 ··· 12 下一页