抽象主要的框架

时间:2015-12-24 03:44:57

标签: c# c++ architecture wxwidgets

某些C ++& C#框架在不需要用户实现var app = angular.module('shanidkvApp', []); app.controller('MainCtrl', function($scope) { $scope.choices = [{id: 'choice1'}]; $scope.addNewChoice = function() { var originalItemNo = $scope.choices.length; var newItemNo = $scope.choices.length+1; $scope.choices.push({'id':'choice'+newItemNo}); }; $scope.removeChoice = function() { var lastItem = $scope.choices.length-1; $scope.choices.splice(lastItem); }; }); 函数或类的情况下运行吗?

例如;在MVVM Cross中,您实施了main,一切都从那里开始。在wxWidgets中,您实施了MvxApplication

框架在他们的API中实现main还是完全绕过它?是否有一个框架设计的术语抽象主要?这种设计有什么好处?

2 个答案:

答案 0 :(得分:1)

在wxWidgets的情况下,您仍然会获得main()WinMain(),它只是隐藏在wxIMPLEMENT_APP()宏中。主要的好处是您不必在自己的代码中使用条件编译来定义Windows下的WinMain()和其他地方的main()(过去,曾经有过其他平台使用的除外main(),但我相信它们现在已经灭绝了。)

答案 1 :(得分:0)

必须有main。因此,这些框架必须提供自己的main,然后调用其特定于框架的main(例如MvXApplication)。

他们这样做的原因是因为框架必须要求在调用客户端代码之前/之后进行某些开始/结束函数调用或操作。而且这些操作可能太复杂或太多而无法执行客户端代码。

我不知道这个术语或名称。