云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

网站空间_阿里云冲话费_12月免费

小七 141 0

在这个博客中,我想展示一个面向对象的控制反转原理的例子。它是在TSW(Trader's and Scheduler's Workbench)中实现的。所采用的方法不是面向对象的,私有云市场,但它类似于控制反转的概念。本博客不是为了详细了解TSW中的连接。

在挖掘示例之前,让我们先来理解这个原则。

这个面向对象的原则规定了高级组件不应该依赖于低级组件,两者依赖于同一个抽象。这是专门化的原则,依赖于抽象,不依赖于具体的类。控制反转可以通过多种机制实现,比如-

但是这对我们意味着什么,为什么我们要这么做?让我用一个简单的例子来解释这个问题,通过简单的工厂模式和静态方法中的依赖注入–

在上面的例子中,我创建了一个文档接口和两个文档类Purchase\u Order和Sales\u Order,它们使用文档接口。在选择事件开始时,有两种方法根据选择屏幕参数创建文档类实例。

第一种方法没有控制反转。在这种方法中,我们的主程序(报表程序)直接依赖于具体类的实例化。由于软件的更改是不可避免的,实例化逻辑的更改会导致主程序的更改,而这并非我们的意图,这样做会产生无意中中断程序的风险。这也意味着高级模块(主程序)依赖于低级模块(采购订单和销售订单具体类)。

在后面的方法中,我创建了一个工厂类,通过将依赖关系作为导入参数传递来获取采购订单或销售订单的实例。在这种情况下,主程序依赖于工厂返回的抽象文档,具体实现也依赖于抽象文档,因此,数据与大数据技术,底层模块(具体类)不依赖于高层模块(主程序),而是依赖于抽象(文档接口)。

转到SAP示例-

使用TSW连接函数需要遵循以下步骤,在创建任何程序之前-

现在我们通过提供连接来编写程序名称和应用程序组作为依赖项。所有的功能模块都配置在应用程序组下。直到运行时,主程序才知道它必须执行哪个功能模块;这取决于配置的内容。

这样,我们的高级模块(主程序)依赖于作为依赖项从主程序传递的连接,智能工厂解决方案,而低级模块(功能模块)也依赖于连接。因此,连接是整个过程的抽象层。

上述体系结构的优点是:

通过使用控制反转和依赖注入,可以通过解耦对象之间的依赖关系来创建高度可维护的程序。

软件框架还使用了控制反转原理。框架控制程序流并运行我们的业务逻辑。例如,BOPF框架,它使用依赖注入(BO键)来获取服务管理器的实例。这是一种构造器注入的形式

希望内容翔实。请评论你的想法!!

,网络云服务器,消防物联网