谈谈Java常用类库中的设计模式
背景 最近一口气看完了Joshua Bloch大神的 Effective Java (下文简称EJ)。书中以tips的形式罗列了Java开发中的最佳实践,每个tip都将其意图和要点压缩在了标题里,这种做法我很喜欢:一来比较亲切,比起难啃的系统书,EJ就像是一本Java的《俚语指南》;二来记忆起来十分方便,整本书过一遍就能望标题生义。 在通读这本书时,我发现作者多次列举现有类库中的实现的设计模式,我有意将其收集起来,这些实现相当经典,我觉得有必要落成一篇文章。随着以后对类库的理解越来越深,我也会持续追加上自己发现的Pattern。 概述 由于篇幅限制,本主题会做成一个系列,每个系列介绍3-4个模式。 本文介绍的设计模式(可跳转): 建造者 工厂方法 享元 桥接 Here We Go 建造者 (Builder) 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 场景:创建复杂对象的算法独立于该对象的组成部分以及它们的装配方式时;对象内部结构复杂;对象内部属性相互依赖。 类型:创建型 建造者模式在Java中最广泛的用途就是复杂对象创建。比起类构造器或Getter/Setter,它同时保证了创建过程的 可读性(和属性名一致的设参方法) 和 安全性(未创建完毕的对象不会逸出) ,同时它还有: 参数可选、可在类继承层次中复用、对集合类字段更加友好 等等优点