美文网首页
组合和享元模式

组合和享元模式

作者: NazgulSun | 来源:发表于2019-03-04 19:32 被阅读0次

    今天两个模式都很简单,因为都是平时用的很多的模式。

    第一个时组合模式,组合模式的精髓就是 对于  一个 对象或者多个对象组成的组合,对于client来说,他的行为时一致的。

    组合模式用的最多的例子,就是构建树形结构,树形结构有 两种类型的节点, leaf节点 和 非 leaf节点,姑且叫Container节点。

    一个container可以包含多个leaf作为其 child, 对外,我们可以按照相同的逻辑来操作 这两类节点,而不用区分时leaf还时非leaf。

    在Unix中,最只直观的 例子是File 和Directory , Directory 可以包含子 File和子 Directory, 对于用户而已,可以在这两类对象上都执行相同的command,比如ls,cp等等。

    在java中,大量使用组合模式的是 java.swing的UI编程,各类组件都是继承自component,不管你是button,Dialog,Panel 等都可以被统一对待。

    比如对于任何一个component 都可以调用其show,hide方法,这就是 个体和组合的行为一致性。

    享元模式,其实就是对象复用模式,我们看到的各类连接池都可以看成是该类模式。用户获取一个连接时,会从池子里拿一个已经创建好的,

    而不是重新创建,可以避免大量的开销。

    java中的string,用的就是享元模式,假设你创建10000个 “abc”,那么其实内存的常量区只有一个 abc。

    相关文章

      网友评论

          本文标题:组合和享元模式

          本文链接:https://www.haomeiwen.com/subject/wthwuqtx.html