首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >代码重构,以消除代码重复

代码重构,以消除代码重复
EN

Stack Overflow用户
提问于 2010-11-04 22:00:49
回答 1查看 165关注 0票数 1

我有如下的类结构:

代码语言:javascript
运行
复制
public class Result
{
   protected int Code {get; set;}
   protected List<string> Messages {get; set;} 
   protected Result ();

   public static Result Success (int code, List<string> messages)
   {
    Result result= new Result();
    result.Code=code;
    result.Messages=messages;
    return result;
   }

}

public class ResultWithName: Result
{
  protected ID {get; set;}

  protected ResultWithName ()
  {
  }

  public static ResultWithName Success (int code, List<string> messages, string name)
  {
    ResultWithName result= new ResultWithName();
    result.Code=code;
    result.Messages=messages;
    result.Name=name;
    return result;
  }

}

如果只有一个静态方法,那么问题就没有问题了,但有几个静态方法,我感兴趣的是如何拥有更简洁、更优雅的代码。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-04 22:04:26

使用参数定义构造函数,而不是在Success方法中内联设置属性。然后设置构造函数中的属性,因为每个属性都是沿着继承链被调用的。

代码语言:javascript
运行
复制
public class Result
{
    protected int Code { get; set; }
    protected List<string> Messages { get; set; }
    protected Result(int code, List<string> messages)
    {
        Code = code;
        Messages = messages;
    }

    public static Result Success(int code, List<string> messages)
    {
        Result result = new Result(code, messages);
        return result;
    }

}

public class ResultWithName : Result
{
    protected string Name { get; set; }

    protected ResultWithName(int code, List<string> messages, string name) :
        base(code, messages)
    {
        Name = name;
    }

    public static ResultWithName Success(int code, List<string> messages, string name)
    {
        ResultWithName result = new ResultWithName(code, messages, name);
        return result;
    }

}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4097403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档