关于在SPA角度中使用UML的几个问题

时间:2014-12-14 04:55:06

标签: mysql uml angular-ui-router restangular model-driven-development

在我们等待下一个即将推出的javascript版本时,即ECMAScript 6代号Harmony,我们被强制使用基于对象/基于功能的javascript。目前没有类构造,接口,继承,信息隐藏手段等。但我不知道它的用处,我只是想知道在完整的单页应用程序框架中使用UML构造,例如AngularJS。

  1. UML是否仅适用于ECMAScript 6 Harmony?

  2. 据说当我们使用mongoDB时,我们不再需要ORM 因为输出已经是对象,那么现在Oracle已经有了 提供HTTP Plugin,使MySQL能够提供RESTful CRUD API 并以JSON作为输出。问题是,当我创建Class时 图,我可以将它转换为JPA实体类,而不是它 当我使用Restangular - > MySQL或者很好的时候有用吗?

  3. Doug Rosenberg&马特斯蒂芬斯'本书用例驱动对象 使用UML进行建模时,它们为每个页面使用一条边界生命线 每个域模型的实体生命线都涉及到他的 顺序图,所以当我使用Angular-UI的UI-Router时,那是什么 它算是边界生命线?是每个州吗?然后我猜 控制生命线是我的角色注册控制器和实体 我传给每个Restangular的javascript对象的生命线 发布/放置/删除方法,不是吗?

  4. 我认为Restangular是一种数据访问对象,不是吗?

  5. 这种模型驱动开发是不适合的 AngularJS,如果是的话那么适当的是什么?

  6. 直接从restangular访问mysql的代码示例:

    Restangular.setDefaultHeaders({'Authorization':'Basic '+btoa("basic_auth_user:basic_auth_passwd")});
    RestangularProvider.setBaseUrl('http://localhost:8080/crud/mydatabase/');
    
    myModule.controller('salesmanController',
    function($scope, Restangular){
    var salesmanDAO = Restangular.all('salesmanTable');
    $scope.allSalesman = salesmanDAO.getList().$object;
    
    
    $scope.insertSalesman = function(){
        var newSalesman = {firstName: $scope.newSalesman.firstName, lastName: $scope.newSalesman.lastName, city: $scope.newnewSalesman.city};
        salesmanDAO.post(newSalesman)
        .then(
            function(newObject){
                $scope.allSalesman = salesmanDAO.getList().$object;
            },
            function error(reason){
                console.log("the reason: ", reason)
            }
        );
        $scope.newSalesman.firstName = '';
        $scope.newSalesman.lastName = '';
        $scope.newSalesman.city = '';
    }
    

1 个答案:

答案 0 :(得分:0)

  

UML是否仅适用于ECMAScript 6 Harmony?

不,UML(类图和序列/活动图)始终可用于制作独立于IT的概念(信息和流程)模型以及独立于平台(信息和流程)的设计模型。这与任何编程语言无关。因此,无论您是否使用Java,C#或JavaScript进行实现,都可以(并且应该)使用这些模型。

另一个问题是哪些代码模式可用于在JavaScript中实现类概念。在这里,我们基本上有两个选择,如我的书this sectionEngineering Frontend Web Apps with Plain JavaScript中所述,

  1. Mozilla在其MDN网站上推荐的经典基于构造函数的类模式。新的ECMAScript 6 class构造只是这种基于构造函数的模式的语法糖。
  2. factory 对象的形式,使用预定义的Object.create方法创建类的新实例。在Eric Elliott推荐的基于工厂的方法中,基于原型的继承机制被另一种机制所取代。 Elliott认为基于工厂的类是JavaScript中基于构造函数的类的可行替代方法。
  3. 请注意,在AngularJS中,没有 模型类 的真实概念,但您当然可以使用自己的方法。

      

    据说当我们使用mongoDB时,我们不再需要ORM,因为输出已经是对象

    这是完全错误的。总是需要一种ORM(或者更好的 对象到存储映射 ),例如,用于映射

    1. 内部对象引用(表示关联)到ID引用,具有某种形式的引用完整性,
    2. 到某些存储结构的类层次结构(例如,具有可选属性的单个表或对象存储)
    3.   

      这种模型驱动开发是否适合AngularJS

      模型驱动开发的方法可用于任何类型的目标平台,包括AngularJS。