怎么样解释依赖注入?[提问而非回答]
网上一个朋友问人注入是怎么回事,我一时语塞。我并不能很好的用尽量通俗的语言来表达这个意思。我说,我写一个代码片段吧,也许这样容易理解些。但发现效果并不明显。
代码示例如下:
public interface IDisplay
{
    void Display(string message);
}
public class LCD:IDisplay
{
    public void Display(string message)
    {
        Console.WriteLine("Display In LCD");
    }
}
public class CRT:IDisplay
{
    public void Display(string message)
    {
        Console.WriteLine("Display In CRT");
    }
}
public class Desktop
{
    public IDisplay displayDevice = null;
    public void ShowMessageOnScreen(string message)
    {
        displayDevice.Display(message);
    }
}
清风醉 5:15:08 PM
public void Main()
{
    Desktop desktop = new Desktop();
    
    //注入LCD的实现
    desktop.displayDevice = new LCD();
    desktop.ShowMessageOnScreen("Display on LCD");
    //注入CRT的实现
    desktop.displayDevice = new CRT();
    desktop.ShowMessageOnScreen("Display on CRT");
}
附带地我又加了一些说明:
清风醉 5:15:08 PM Desktop(电脑)依赖显示设备(displayDevice)来显示信息 清风醉 5:15:31 PM Desktop留一个接口IDisplay cnblogs 5:16:01 PM ?? 清风醉 5:16:02 PM 你可以向这个接口IDisplay注入符合规范的实现(LCD或CRT) 清风醉 5:16:13 PM 听不懂? cnblogs 5:16:29 PM 嗯 有点懵 清风醉 5:16:50 PM 呵呵 清风醉 5:16:58 PM 可能是我太术语化了 清风醉 5:17:09 PM 你懂面向对象吗? cnblogs 5:17:29 PM 只能说理解 清风醉 5:18:49 PM 通常我们说的注入,就是通过多态,来改变被注入者的行为
当我说完这些时,我越发地语塞了。我知道我已经说不清楚了,越解释越让人迷糊。本来我准备将Martin Fowler的文章发给他看看,后来也放弃了。
进而一步,怎么样才能将一个技术问题向别人说清楚,明白?
努力向其靠近…
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号