2

我是一个新手,通过阅读 Judith Bishop 的书“C# 3.0 设计模式”,刚刚开始涉足这个设计模式的世界。

作为 Proxy 章节末尾的练习,作者建议使用 Proxy 模式实现一个自定义类,该类“拦截、监视和记录对 Stream 方法的每次调用”。

我有点不确定我带来了什么,我想征求意见。在我放弃了一些想法之后(例如,从公开一些最常用的 Stream 方法的接口开始),我最终创建了一个继承自 Stream 并覆盖它的一些方法的类。这个类还有一个 FileStream 属性,我用它来调用实际的 Stream 方法和属性,我之前已经用方法包装了它们来记录它们的每个调用:

    public class MyStream : Stream
    {
        private FileStream _stream;

        public MyStream()
        {
            _stream = new FileStream();
        }

        public override bool CanRead
        {
            get 
            {
                LogCall("CanRead");
                return _stream.CanRead;
            }
        }

        //More stream methods to override...
    }

然而,这对我来说更像是一个装饰器。此外,自练习以来,“坏”装饰器询问“流方法”,我使用“文件流”作为实际类。

我不觉得这是代理模式最准确的例子,我有点不确定我是否理解了这个练习。

关于我应该如何进行这项练习的任何建议?提前致谢,

4

0 回答 0