• 向各位请教一个关于Decorator模式的问题


    现在有这样一个设计问题,我要对程序运行中的一段内容进行Log
    由于Log的存储方式有多种,一种是保存的Log.txt文件,一种是显示在窗口的Memo控件中
    而在保存Log之前,我需要对Log的内容进行格式化,还有可能需要对Log的内容进行过滤。

    由于以上任务不是固定搭配的,所以我采用了Decorator模式
    先实现一个标准的,写txt文件的Log对象。然后按照Decorator的方法,分别实现在Memo中
    显示、格式化、过滤等对象。

    问题是这样的:
    过滤对象必须对原始的流数据进行检索,如果数据被格式化对象处理过之后,过滤对象就无
    法正常工作。我如何在设计层面上保证过滤对象必须在格式化对象处理数据之前获得数据?
    因为所有的Decorator对象都是独立、平等的。也就是:
    只能 Log = new FilterDecorator(new FormatDecorator(new TextLog));
    不能 Log = new FormatDecorator(new FilterDecorator(new TextLog));
  • 相关阅读:
    woj 1574
    UESTC 594 我要长高 dp单调队列
    HDU 3401 Trade dp 单调队列优化
    HDU 2844 Coins 多重背包
    2-1
    1-2
    1-1
    12-1
    9-1
    14-8
  • 原文地址:https://www.cnblogs.com/cache/p/120911.html
Copyright © 2020-2023  润新知