网站开发交易网站,上海制造网站公司,电子商务网站的建设和维护论文,pc网站前言 : 参加点部落的活动#xff0c;关于IoC(控制反转)大家有很多的讨论。本文排除对象生成的部份#xff0c;单纯解释IoC为甚么叫做控制反转。本篇文章以之前写的 [Object-oriented] : 重用内容来举例。 未IoC之前的对象图 : 很明显的左边的组件A#xff0c;相依右边的组件… 前言 : 参加点部落的活动关于IoC(控制反转)大家有很多的讨论。本文排除对象生成的部份单纯解释IoC为甚么叫做控制反转。本篇文章以之前写的 [Object-oriented] : 重用内容来举例。 未IoC之前的对象图 : 很明显的左边的组件A相依右边的组件B。左边的对象相依右边的对象 public class Robot
{private Car _car null;public Robot(Car car){_car car;}public void Work(){_car.Run();}
}public class Car
{public void Run(){}
} IoC之后的对象图 : 很清楚的看到组件A不再相依组件B。反倒是组件B为了继承ICar接口相依了组件A。(物件也是相依性反转) public class Robot
{private ICar _car null;public Robot(ICar car){_car car;}public void Work(){_car.Run();}
}public interface ICar
{void Run();
}public class Car : ICar
{public void Run(){}
} 后记 : 由上面的范例来看很明显的对象的相依性方向改变了。还有组件的相依性方向也改变了。 总的归纳起来。狭义的说 : 在切割对象相依性的时候可以采用IoC。广义的说 : 在架构子系统或是应用层的时候也可以采用IoC。广广义的说 : ASP.NET把页面的内容交由程序设计师去撰写也是IoC的一种应用。他是一种实现『切割相依性』、『重用上层抽换下层』这些目的的模式。 IoC不是很新奇的技术甚至跟各种面向对象技术、设计模式都有点部份重合。但是主要是让我们在切割类别或是系统的时候有个共同的名词。 另外补充学习模式是用来帮助设计、分析跟学习。学完了之后实际在工作上去实做 等写到忘记这些模式名词并且可以组合出自己需要的模式才算真的有到一个段落。(怎么有点像倚天屠龙记的桥段...XD)转载于:https://www.cnblogs.com/clark159/archive/2011/10/10/2205096.html