在我们等待下一个即将推出的javascript版本时,即ECMAScript 6代号Harmony,我们被强制使用基于对象/基于功能的javascript。目前没有类构造,接口,继承,信息隐藏手段等。但我不知道它的用处,我只是想知道在完整的单页应用程序框架中使用UML构造,例如AngularJS。
UML是否仅适用于ECMAScript 6 Harmony?
据说当我们使用mongoDB时,我们不再需要ORM 因为输出已经是对象,那么现在Oracle已经有了 提供HTTP Plugin,使MySQL能够提供RESTful CRUD API 并以JSON作为输出。问题是,当我创建Class时 图,我可以将它转换为JPA实体类,而不是它 当我使用Restangular - > MySQL或者很好的时候有用吗?
Doug Rosenberg&马特斯蒂芬斯'本书用例驱动对象 使用UML进行建模时,它们为每个页面使用一条边界生命线 每个域模型的实体生命线都涉及到他的 顺序图,所以当我使用Angular-UI的UI-Router时,那是什么 它算是边界生命线?是每个州吗?然后我猜 控制生命线是我的角色注册控制器和实体 我传给每个Restangular的javascript对象的生命线 发布/放置/删除方法,不是吗?
我认为Restangular是一种数据访问对象,不是吗?
这种模型驱动开发是不适合的 AngularJS,如果是的话那么适当的是什么?
直接从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 = '';
}
答案 0 :(得分:0)
UML是否仅适用于ECMAScript 6 Harmony?
不,UML(类图和序列/活动图)始终可用于制作独立于IT的概念(信息和流程)模型以及独立于平台(信息和流程)的设计模型。这与任何编程语言无关。因此,无论您是否使用Java,C#或JavaScript进行实现,都可以(并且应该)使用这些模型。
另一个问题是哪些代码模式可用于在JavaScript中实现类概念。在这里,我们基本上有两个选择,如我的书this section的Engineering Frontend Web Apps with Plain JavaScript中所述,
class
构造只是这种基于构造函数的模式的语法糖。Object.create
方法创建类的新实例。在Eric Elliott推荐的基于工厂的方法中,基于原型的继承机制被另一种机制所取代。 Elliott认为基于工厂的类是JavaScript中基于构造函数的类的可行替代方法。请注意,在AngularJS中,没有 模型类 的真实概念,但您当然可以使用自己的方法。
据说当我们使用mongoDB时,我们不再需要ORM,因为输出已经是对象
这是完全错误的。总是需要一种ORM(或者更好的 对象到存储映射 ),例如,用于映射
这种模型驱动开发是否适合AngularJS
模型驱动开发的方法可用于任何类型的目标平台,包括AngularJS。