摘要:
什么是装饰者模式 在不破坏被装饰类的业务逻辑的情况下进行增强 同时支持装饰多层,与代理模式很像 装饰者侧重增强,代理侧重控制 Java IO 类图 使用 //FileInputStream是转为用于读取文件流的类 InputStream in = new FileInputStream("/user 阅读全文
摘要:
JDBC实现 说明 jdbc实现就是桥接模式 关注点在依赖关系的维护。对于jdbc技术来说,它解耦了业务与数据库通信协议这两个纬度之间的关系,所以这两个纬度之间的关系就需要一个桥,即Driver,至于DriverManager把这个关系接到哪里就是运行时的事情了。 微观上,从connection的创 阅读全文
摘要:
什么是代理模式 在不侵入原有业务逻辑的情况下,实现功能的扩展和增强 注:静态代理和装饰者模式非常像,个人理解应该是语义上的区别,代理侧重重于控制:比如限流 权限控制 而装饰者只是功能增强 源码中使用到的代理模式 《dubbo源码阅读-服务暴露(七)之本地暴露(Injvm》 《dubbo源码阅读-Pr 阅读全文
摘要:
说明 如果对象的创建成本比较大(如会经过io,RPC,数据库,大量计算创建),而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式(Prot 阅读全文
摘要:
场景一构建复杂参数的对象 需求 我们需要定义一个资源池配置类 ResourcePoolConfig。这里的资源池,你可以简单理解为线程池、连接池、对象池等。在这个资源池配置类中,有以下几个成员变量,也就是可配置项。现在,请你编写代码实现这个 ResourcePoolConfig 类。 传统实现一 实 阅读全文
摘要:
简单工厂 if实现 public class RuleConfigSource { //加载指定文件到config public RuleConfig load(String ruleConfigFilePath) { //获取文件后缀 String ruleConfigFileExtension 阅读全文
摘要:
说明 从业务概念上,有些数据在系统中只应该保存一份,就比较适合设计为单例类。比如,系统的配置信息类。除此之外,我们还可以使用单例解决资源访问冲突的问题。 饿汉式 在类加载的时候就创建 public class IdGenerator { private AtomicLong id = new Ato 阅读全文