【问题标题】:Do the following make use of some design patterns?以下是否使用了一些设计模式?
【发布时间】:2017-06-07 23:31:52
【问题描述】:

给定

class ClassA
{
    void MethodA(ClassB ObjB) {...}
}

利用一些设计模式进行以下操作:

class ClassC: ClassB
{
    void MethodC(ClassA ObjA) {ObjA.MethodA(this);}
}

class ClassD
{   
    ClassB _objB;
    void MethodC(ClassA ObjA) {ObjA.MethodA(this._objB);}
}

?

例如

Class MyData
{
    int data;
    void Write(BinaryWriter writer){writer.Write(data);};
}

谢谢。

【问题讨论】:

  • 为什么要问,请提供一些背景资料还是只是一个问题来增加你的分数。
  • 此代码接缝是否完全多余?我想你可以随心所欲地命名它,只要你能很好地证明它是有用的
  • 你能提供一个minimal reproducible example吗?
  • @Enigmativity:谢谢。刚刚添加。
  • @Tim - 还没有。如果我复制并粘贴您的代码,它不会编译。

标签: c# design-patterns


【解决方案1】:

看起来像是访客设计模式的精简版:

  using System;
  using System.Text;

  interface IExpressionVisitor
  {
    void Visit(Literal literal);
    void Visit(Addition addition);
  }

  interface IExpression
  {
    void Accept(IExpressionVisitor visitor);
  }

  class Literal : IExpression
  {
    internal double Value { get; set; }

    public Literal(double value)
    {
      this.Value = value;
    }
    public void Accept(IExpressionVisitor visitor)
    {
      visitor.Visit(this);
    }
  }

提取自https://en.wikipedia.org/wiki/Visitor_pattern

【讨论】:

  • 谢谢。访客模式如何?
  • 如果你看方法Accept,它看起来像MethodA
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 2014-02-26
  • 1970-01-01
  • 1970-01-01
  • 2013-02-15
  • 2011-11-02
相关资源
最近更新 更多