代理类附加的是跟原始类无关的功能,而在装饰器模式中,装饰器类附加的是跟原始类相关的增强功能。
来自:50 | 装饰器模式:通过剖析Java IO类库源码学习装饰器模式
63 人划过
实际上,工厂模式是用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象。建造者模式是用来创建一种类型的复杂对象,通过设置不同的可选参数,“定制化”地创建不同的对象。
来自:46 | 建造者模式:详解构造函数、set方法、建造者模式三种对象创建方式
43 人划过
这里的“控制”指的是对程序执行流程的控制,而“反转”指的是在没有使用框架之前,程序员自己控制整个程序的执行。在使用框架之后,整个程序的执行流程可以通过框架来控制。流程的控制权从程序员“反转”到了框架。
来自:19 | 理论五:控制反转、依赖反转、依赖注入,这三者有何区别和联系?
39 人划过
面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石
来自:04 | 理论一:当谈论面向对象的时候,我们到底在谈论什么?
27 人划过
设计模式要干的事情就是解耦,也就是利用更好的代码结构将一大坨代码拆分成职责更单一的小类,让其满足高内聚低耦合等特性。创建型模式是将创建和使用代码解耦,结构型模式是将不同的功能代码解耦,行为型模式是将不同的行为代码解耦
来自:75 | 在实际的项目开发中,如何避免过度设计?又如何避免设计不足?
15 人划过
重构是保证代码质量不至于腐化到无可救药地步的有效手段,那么利用解耦的方法对代码重构,就是保证代码不至于复杂到无法控制的有效手段。
来自:30 | 理论四:如何通过封装、抽象、模块化、中间层等解耦代码?
13 人划过
实际上,职责链模式还有一种变体,那就是请求会被所有的处理器都处理一遍,不存在中途终止的情况。
来自:62 | 职责链模式(上):如何实现可灵活扩展算法的敏感信息过滤框架?
11 人划过
当我们需要恢复到某一时间点的备份的时候,如果这一时间点有做全量备份,我们直接拿来恢复就可以了。如果这一时间点没有对应的全量备份,我们就先找到最近的一次全量备份,然后用它来恢复,之后执行此次全量备份跟这一时间点之间的所有增量备份,也就是对应的操作或者数据变动
来自:70 | 备忘录模式:对于大对象的备份和恢复,如何优化内存和时间的消耗?
10 人划过
,最关键的一个数据结构是 Observer 注册表,记录了消息类型和可接收消息函数的对应关系。当调用 register() 函数注册观察者的时候,EventBus 通过解析 @Subscribe 注解,生成 Observer 注册表。当调用 post() 函数发送消息的时候,EventBus 通过注册表找到相应的可接收消息的函数,然后通过 Java 的反射语法来动态地创建对象、执行函数。
来自:57 | 观察者模式(下):如何实现一个异步非阻塞的EventBus框架?
9 人划过
框架集成的功能越多,为了处理逻辑的通用性,就会引入更多额外的处理代码。比起针对具体问题具体编程,这样性能损耗就相对大一些。
来自:87 | 开源实战五(上):MyBatis如何权衡易用性、性能和灵活性?
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容
编辑推荐
讲师的其他课程
包含这门课的学习路径
Java工程师
29门课程 154.7w人学习
后端工程师
27门课程 184.1w人学习
看过的人还看了