【问题标题】:What are the best practices for managing Properties/Fields (and data) and Methods in Classes? [closed]管理类中的属性/字段(和数据)和方法的最佳实践是什么? [关闭]
【发布时间】:2017-06-08 04:55:12
【问题描述】:

问:在 C# 中管理属性/字段及其数据和用于获取和设置属性的方法的最佳实践是什么?

我见过两种常见的情况:

  1. 将用于加载其数据的属性/字段和方法放在一个 班级。通常,方法是在构造函数中调用的,因此每当实例化此类时,都会立即调用数据加载方法。 一个简单的例子可以是这样的:

    public class MetaData
    {
        public MetaData()
        {
            LoadData();
        }
    
        public string Id { get; set; }
        public string Name { get; set; }
        public Double PrivateKey { get; set; }
    
        private void LoadData()
        {
            var rnd = new Random();
            Name= "Farhan";
            Id = Name + '_' + rnd.Next();
            PrivateKey = rnd.NextDouble();
        }
    }
    
  2. 将属性/字段放在单独的类(可以称为存储类)和另一个包含用于加载该类的属性/字段的方法的类中。

    public class MetaData
    {                  
        public string Id { get; set; }
        public string Name { get; set; }
        public Double PrivateKey { get; set; }  
    }
    
    public class DataContext
    {
        public MetaData metData = new MetaData();
        public void LoadData() 
        {
            var rnd = new Random();
            metData.Name = "Agha";
            metData.Id = metData.Name + '_' + rnd.Next();
            metData.PrivateKey = rnd.NextDouble();
        }
    }
    

我个人认为第一种方法更好,但我想了解有关代码管理/可读性和性能相关问题的最佳实践的知识。

【问题讨论】:

    标签: c# performance class code-readability


    【解决方案1】:

    它的偏好。有些人喜欢一种方式,有些人喜欢其他方式。有些遵循某些准则,而另一些则不遵循行业标准准则。采用 SOLID 原则的 S,它对一个类表示 单一责任,您可以只声明属性并创建另一个文件,您只需要在其中编写保存方法。

    而其他人可能会将所有 CRUD 操作写入与特定实体相关的单个文件中。但我建议坚持 SOLID 原则,还有许多其他建议和原则您应该考虑。

    【讨论】:

      【解决方案2】:

      如果您想避免编写属性,因为您知道这需要时间,所以您可以做的所有节省时间或简单的方法是按 ctrl + k + x 以便打开封装窗口并自动生成您的属性,其他方式是

      Public string id{get;set;}
      public string name{get;set;}
      public int age {get;set;}
      

      【讨论】:

        【解决方案3】:

        嗯,这更像是您的团队需要根据他们遵循的理念做出的设计决策。

        在我看来:类是现实世界实体的蓝图。 一个真实世界的实体可以有一些属性和一些行为。 所有这些属性和行为都必须由您的类蓝图公开。 于是就出现了封装的概念。

        如果我们谈论构造函数,它们就是初始化器。 在外行语言中,构造函数是对象的初始化器,它确保在我们将对象交付给程序之前预先初始化使用类的所有必要事物。 例如:人类是一个类(现实世界的实体)。一个人的心脏应该是跳动的。 因此,我们将在构造函数中调用它的 StartBeating 方法,以确保在我们将人类交付给调用者时他还活着。

        我希望这可以帮助您缩小方法范围。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-10-27
          • 1970-01-01
          • 1970-01-01
          • 2014-07-30
          • 2019-03-05
          • 2011-11-21
          • 2021-05-28
          • 1970-01-01
          相关资源
          最近更新 更多