V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
JoiT
V2EX  ›  编程

关于 C#类中成员变量初始化的问题。

  •  1
     
  •   JoiT · Apr 28, 2015 · 3369 views
    This topic created in 4025 days ago, the information mentioned may be changed or developed.

    有一个接口:

    public interface IAnimal
    {
        void doSomeThing();
    }
    

    有麽牢牢的实现

    //有好多个IAnimal接口的实现
    //这里就不列举了
    

    然后比如有一个控制器或者其他一些什么类也好:

    public class HomeController
    {
       private readonly IAnimal _animal;
       public Dog()
       {
           IAnimal animal;       
           animal=_animal;
       }
       //......
       //......       
    }
    

    接着就疯狂地进行DI也好,new也好,总之就是搞了相应的对象出来。

    然后就在Dog类下面的操作中疯狂地使用animal这个业务接口了。

    这个样子做初始化业务层的好处是什么?

    1 replies    2015-05-19 01:48:27 +08:00
    puncsky
        1
    puncsky  
       May 19, 2015
    方便之处在于,

    1. 传递同一类对象。你自己也说了,只要是IAnimal,无论是DI也好,new也好,无论是单个animal还是一群animal都可以同过这个 IAnimal 从别处传递过来。否则一堆相似的类传进来,用不同的类型接,很冗余。
    2. 对同一类对象执行同样的操作 e.g. foreach loop,

    foreach(IAnimal a in animals) {
    a.doSomething();
    }

    这样就省去了一堆相似的类却要写好多个 foreach loop
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2769 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 08:13 · PVG 16:13 · LAX 01:13 · JFK 04:13
    ♥ Do have faith in what you're doing.