龙潭书斋 -- 302




200x200


概述有时需要对一个系统中的各个节点提供各种操作,但是对于不同的节点却需要不同的操作考虑一个编译器,我们需要对代码对象进行类型检查、代码优化、流程分析等等操作,对于变量对象、赋值语句对象等等我们都需要进

#读书笔记    #技术帖    #龙潭书斋    #设计模式   

200x200


概述有时我们知道一个算法的所有步骤,但是具体实现却可以有很多种版本,例如一份外卖,用户执行下单、支付、配送、确认收货这几个步骤,但是以配送为例,不同的货品、不同的收货地址需要以不同的配送方式进行配送,

#读书笔记    #技术帖    #龙潭书斋    #模板   

200x200


概述有时,我们需要动态的决定需要在程序中使用一组算法中的某一个,例如众所周知的,在不同的平台,有不同的换行指令,\n、\r 或 \r\n,虽然换行符看上去很简单,但是如果将他们硬编

#读书笔记    #技术帖    #龙潭书斋    #面向对象   

200x200


概述很多情况下,对象的行为依赖于对象的状态,例如对于电商的订单处理系统,订单是否可以支付依赖于订单是否处于待支付状态,对于不同的状态需要进行不同的处理方式State 模式就描述了对象如何在每

#读书笔记    #技术帖    #龙潭书斋    #状态   

200x200


概述有时,多个对象需要依赖某个对象状态的变化,这就是典型的“发布-订阅”模式这样的系统由一系列相互协作的类构成,如何处理一对多的耦合呢?观察者模式就是为了处理这样的场景而存在的一个目标对象可能有任意数

#读书笔记    #技术帖    #龙潭书斋    #java   

200x200


概述很多情况下,对象的操作都支持取消机制,就是将内部状态回退到操作前的版本,这样,你必须在操作执行前将对象的内部状态保存在外部但是对象通常封装了他的状态信息,使得状态不能被其他对象访问,对外暴露内部状

#读书笔记    #技术帖    #龙潭书斋    #面向对象   
概述在前面的博文中,我们介绍了 guava 的 Multimap 容器Key 可重复的 Map -- MultimapMultimap 是一种键可重复出现的 Map 容器,可以看作是实现了 Map<K, List<V>> 功能的容器在实际的使用中,有时我们还需要 Map<K, Map<T, V>> 这样的结构,例如,我们的一个超市中有多个货架,货架上有水果,我们需要通过货架 ID、对应货架上的水果 ID 获取到某种水果的信息,这样的数据结构如果用 Map<K, Map<T, V>> 这样的容器来存储和表示就显得非常丑陋了Guava 提供的 Table 容器解决了这个问题Guava 的 Table 是一个三元组,每一条记录需要用两个 Key 进行索引,也可以看做是一个 Map<K, Map<T, V>> 结构,每一个 V 的确定都必须提供&nbs
#技术帖    #龙潭书斋    #容器    #java   

200x200


创建型模式抽象工厂模式 -- AbstractFactory  生成器模式 -- Builder  工厂方法 

#读书笔记    #技术帖    #龙潭书斋    #面向对象   

200x200


概述在项目中,对象间的相互调用是非常常见的情况,这也就造成了对象之间的耦合,中介者模式就是用来封装一系列对象间的交互,对象不需要再显式地相互引用,从而使其耦合松散,可以独立的改变他们之间的交互虽然一个

#读书笔记    #技术帖    #龙潭书斋    #消息队列   

200x200


概述其实各种面向对象编程语言大多提供了迭代器模式的实现和具体的工具类迭代器模式主要是提供一种顺序访问一个聚合对象中的各个元素的方法,而不需要关心具体对象的类型和内部表示,在有些语言中,也被称为“游标”

#技术帖    #龙潭书斋    #java    #面向对象   



京ICP备15018585号