zoukankan      html  css  js  c++  java
  • <<设计模式可复用面向对象软件的基础>>组合模式(Composite)

    通过对书上例子对文档结构的分析学习组合模式
    分析:
    定义文档基本元素
    从根本上来说,一个文档只是对字符、线、多边形和其他图形元素的一种安排。这些元素记录了文档的整个信息内容。
    分析内部表示
    然而,一个文档作者通常并不将这些元素看作图形项,而是看作文档的物理结构—行、列、图形、表和其他子结构 。而这些子结构也有自己的子结构。用户界面应该让用户直接操纵这些子结构。
    • 保持文档的物理结构。即将文本和图形安排到行、列、表等。(元素如何组织)
    • 可视化生成和显示文档。(元素如何显示)
    • 根据显示位置来映射文档内部表示的元素。(根据显示获取元素,涉及用户操作)
    一些限制条件:
    一致对待文本和图形,简化格式及操作机制
    一致地对待简单元素和组合元素
    为了检查拼写错误和确定连字符的连接点,需要对文本进行分析与一致地对待简单元素和组合元素产生的矛盾。
    实现:
    层次结构信息的表述通常是通过一种被称为递归组合 (Recursive Composition)的技术来实现的。递归组合可以由较简单的元素逐渐建立复杂的元素.

    我们将字符和图形从左到右排列形成文档的一行,然后由多行形成一列,再由多列形成一页


      我们将为出现在文档结构中的所有对象定义一个抽象类图元(Glyph )。它的子类既定义了基本的图形元素(像字符和图像),又定义了结构元素(像行和列)

  • 相关阅读:
    Spark开发环境搭建(IDEA、Scala、SVN、SBT)
    Spark源码系列:RDD repartition、coalesce 对比
    Scala:类和对象
    申请MS的FastCounter
    code generation part1some OOrelated topic! not completed
    [book]ADO.NET实用指南
    如果FC能把blog的WEB VIEW与AGG VIEW统计起来就方便多了
    Dell 1704
    O'Reilly .NET Framework Essentials, 2nd Edition
    单用户blog系统(一)
  • 原文地址:https://www.cnblogs.com/figo/p/1098368.html
Copyright © 2011-2022 走看看