Unity Application Block 1.0: 构造子注入(Constructor Injection)
【IT168技术文档】
什么情况下使用Constructor Injection
* 当实例化父对象时也能自动实例化所依赖的对象
* 通过简单的方式使得很容易做到在代码中查看每个类所依赖的项
* 父对象的构造器不需要很多相互间有关联关系的构造器
* 父对象的构造器不需要很多参数
* 通过不使用属性和方法暴露给调用程序,达到封装字段值以不能被看到的目的
* 通过修改依赖对象的代码来控制哪些对象可以被注入,而不用改动父对象或应用程序
准备工作
开始public class Song { public string Singer { get { return "Westlife"; } } public string Name { get { return "My Love"; } } } public class Owner { public string Name { get { return "Inrie"; } } public int Age { get { return 24; } } } public interface IPlayer { void Play(); }
根据类构造器的个数分成下面两种情况:
1.单个构造器
2.多个构造器
1.单个构造器:
Unity对于单个构造器的情况,将做自动的依赖注入。
看个例子:
public class Mp3Player : IPlayer { public Song mSong; public Mp3Player(Song song,Owner owner) { this.mSong = song; } public void Play() { Console.WriteLine(string.Format("Now Playing [{0}] Singing by ({1})", this.mSong.Name, this.mSong.Singer)); } }
0
相关文章