我应该为对象使用控制器类吗?

时间:2018-10-19 15:30:12

标签: c# oop

我很困惑。迷路了。自学C#,并对设置对象有疑问。我的第一次尝试创建了一个对象,让该对象自己处理所有事情。假设我有以下课程:

class Customer{
    public string customerName{get; set;}

    public Customer(string customerName){
      this.customerName = customerName;
   }

    public int UpdateCustomer(){
       ///do stuff
    }
}

然后从我的表单中,如果有人按下了更新按钮(仅作为示例),我只需创建一个新的Customer,设置名称,然后调用UpdateCustomer。看起来好像不是一个很好的流程,并且由于某种原因感觉不正确。

我应该直接从表单中调用UpdateCustomer吗?还是应该创建一个控制器来处理客户的所有事务?

1 个答案:

答案 0 :(得分:1)

OOP中的对象被允许同时具有状态行为。根本上没有错。例如,假设我们想对客户说“嗨”,那么传统的模型就是:

public void SayHello() { Console.WriteLine("Hi!"); }

Customer类上。还有很多其他示例。话虽如此,在很多情况下,将状态和行为分开是有利的。特别是,在使用依赖项注入时,它非常有用,因为通常不会注入“状态”对象,因此无法立即访问行为的依赖项。另外,某些架构模式(例如Actor-Model)禁止行为和状态的严格分离。

从根本上讲,(在软件工程中是如此)归结为针对在特定时间和地点有意义的内容进行设计。在没有看到UpdateCustomer的实现的情况下,很难说出正确的答案,但这当然不是天生的错误。