我有一些关于IoC和CBSE之间差异的问题,这些问题我一生都找不到。
我已经在IoC / DI中使用了很长一段时间,现在特别是在PHP中使用Laravel,所以我想我对它的工作原理和使用方法有很好的了解。我最近购买了George T. Heineman的著作“基于组件的软件工程”。当谈到这些组件如何与其他组件通信时,我感到有些困惑,因此开始进行一些在线研究。我正在专门查找C#示例,据我所知CBSE与Ioc / DI非常相似,在某些情况下,我常常想知道人们是否只是在称错它。
在阅读本书时,我能看到的最大区别是与其注入了更线性的依赖关系,并且在界面中告诉了您要使用的类。我感觉好像我完全脱离基础,错过了CBSE的全部要点,但是找不到任何让我感到惊讶的信息。有人能提供一些信息可以解决这一问题吗?
小更新:
如果我正确理解的话,CBSE背后的想法听起来真的很好。但是我迷上了组件之间如何相互通信。如果我理解正确,那么这些组件应该对那里的任何其他组件一无所知。因此,尽管所有事件都将引发事件,但只有在需要信息的组件知道或期望有x个组件引发该事件的情况下,事件才起作用。
我试图解决这个问题有几个原因。看看这是我想学习并开始用作应用程序程序员的途径,还是我对游戏编程的兴趣。我通过研究游戏编程来了解CBSE。
最佳答案
基于组件的软件工程是一种软件开发的范式,它指定一个人应该针对接口依赖性构建软件,以使组件的封装性和可重用性最大化。在许多语言中,这种范例都需要控制反转才能满足该范例。
但是,基于组件的软件工程不是控制权的倒置,它只是通过使用DI和IoC容器最容易且完全完成的软件设计模型。对于C#,如果您想走基于组件的软件工程路线,那么我将研究如何熟悉DI,IoC及其各自容器的工作方式。
关于c# - 有关IoC/DI VS CBSE的信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22489870/