标签: object-model

JavaScript:.extend和.prototype用于什么?

我是一个相对较新的JavaScript,并继续在我正在使用的第三方库中看到.extend和.prototype.我认为它与Prototype javascript库有关,但我开始认为情况并非如此.这些用于什么?

javascript prototype object-model

119
推荐指数
4
解决办法
13万
查看次数

如何开始为我的.NET应用程序设计和实现脚本界面?

如何开始为我的.NET应用程序设计和实现脚本界面?

VSTA(的.NET等同VBACOM),但据我了解,我将不得不支付许可费,我的应用程序的每个安装.它是一个开源的应用程序,所以这将无法正常工作.

还有例如嵌入式解释器(IronPython?),但我不明白这将如何允许将"对象模型"(见下文)暴露给外部(或内部)脚本.

子问题:

  • .NET中的脚本界面故事是什么?在.NET中这样做是否有点微不足道?
  • 例如,我的应用程序中的某些.NET对象及其包含的对象是否可以在运行时声明可以从外部访问?
  • 外部脚本如何访问我的应用程序(通过对象模型)?

背景:

我曾经为Macintosh应用程序设计并实现了一个相当复杂的脚本接口,用于从质谱仪(Mac OS,System 7)获取和分析数据,后来用于Windows应用程序的COM接口.

两者都设计有"对象模型"和类(可以具有属性).这些是重载的单词,但在脚本界面中,上下文对象模型本质上是特定类对象的包含层次结构.类具有属性,包含对象的列表,不仅是数据,还可以包含动词(动作/方法).例如,在Macintosh情况下,定义的应用程序对象可以包含一个采集对象,该对象具有仪器中使用的电压和fireLater动词的属性- 所有这些都可以从外部脚本中看到.

请注意,在这两种情况下,用于实现应用程序的编程语言中的类/对象与脚本对象模型无关.对于Macintosh的情况,用于实现脚本接口的机制由Apple定义.Apple还定义了一些如何设计对象模型的标准.例如,类中某些常见属性的标准化名称.

或者类似于在Microsoft Office应用程序中公开的COM接口,其中应用程序对象可用于添加到其文档列表(具有创建文档的GUI表示的副作用).

外部脚本可以在容器中创建新对象,并在任何给定时间浏览层次结构的内容.在Macintosh中,案例脚本可以用例如AppleScriptFrontier编写.

在Macintosh上,脚本接口的实现非常复杂.在Metroworks的C++类库中支持它(这个名字现在让我失望)使它变得更加简单.

.net object-model scripting-interface

33
推荐指数
6
解决办法
3075
查看次数

AngularJS:如何使用丰富的分层对象模型构建控制器和工厂/服务?

我读了这两篇很棒的文章:

Jonathan Creamer 的angularjs控制器状态

由Todd Motto 重新思考AngularJS控制器

在这些文章中,作者讨论了使用控制器的正确方法(使它们成为视图和模型之间的贫血桥梁)和工厂/服务(业务逻辑应该存在的地方).

这是很好的信息,我很高兴开始在我的一个项目上重构控制器,但我很快发现,如果你有一个丰富的对象模型,文章中显示的结构就会崩溃.

以下是"重新思考Angularjs控制器"的设置概述:

这是控制器:

app.controller('InboxCtrl', function InboxCtrl (InboxFactory) {

    var vm = this;

    vm.messages = InboxFactory.messages;

    vm.openMessage = function (message) {
      InboxFactory.openMessage(message);
    };

    vm.deleteMessage = function (message) {
      InboxFactory.deleteMessage(message);
    };

    InboxFactory
      .getMessages()
      .then(function () {
      vm.messages = InboxFactory.messages;
    });

});
Run Code Online (Sandbox Code Playgroud)

这是工厂:

app.factory('InboxFactory', function InboxFactory ($location, NotificationFactory) {

  factory.messages = [];

  factory.openMessage = function (message) {
    $location.search('id', message.id).path('/message');
  };

  factory.deleteMessage = function (message) {
    $http.post('/message/delete', message)
    .success(function (data) {
      factory.messages.splice(index, 1);
      NotificationFactory.showSuccess();
    }) …
Run Code Online (Sandbox Code Playgroud)

structure object-model angularjs angularjs-factory angularjs-provider

30
推荐指数
1
解决办法
1176
查看次数

.NET的HL7对象模型

搜索将提供对象模型,解析,验证等的库或框架

我们的想法是能够启动hl7 v2或v3类型的新对象.然后可能将其称为消息类型ORU_R01或ADT,或ORM.

如果我们能够做到这样的事情,生活会不会很好:

HL7V2 myMessage = new HL7V2();
myMessage.Type = V2MsgTypes.ORU_R01;
myMessage.TryParse(someHL7_string);

if (myMessage.IsValid)
{
  //do some work
  //maybe access the PID segment
  if (myMessage.Patient.Names.FamilyName =="Johnson")
  {
    //do more work
  }
}
Run Code Online (Sandbox Code Playgroud)

.net c# hl7 object-model

26
推荐指数
2
解决办法
3万
查看次数

在Python中,对象和字典之间有什么区别?

创建对象后,我可以随意添加和删除插槽,就像我可以使用字典一样.甚至方法也只是存储在槽中的对象,所以我可能也可以将方法添加到字典中.

我可以用一个(非字典)对象做一些我永远不会用字典做的事情吗?或者是否可以设置一个完全看起来像某个类的对象的字典?

这个问题不是关于它们是如何创建的,而是关于我以后如何使用它们的问题.链接或参考表示赞赏.

python object-model

24
推荐指数
2
解决办法
5971
查看次数

使用TFS API,我如何找到在Code Review上发表的评论?

我正试图找到一种方法来查找有关TFS2012中的代码审查请求/响应项的详细信息.

我可以通过以下方式查询所有代码审查请求/响应项:

const string TfsUri = "http://mytfsserver:8080/tfs/Default ProjectCollection";

var tfs = new TfsTeamProjectCollection(new Uri(TfsUri));
var store = tfs.GetService<WorkItemStore>();

var versionStore = tfs.GetService<Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer>();

var queryText = "SELECT [System.Id], 
                 FROM WorkItems 
                 WHERE [System.WorkItemType] = 'Code Review Request' 
                 or [System.WorkItemType] = 'Code Review Response'";
var query = new Query(store, queryText);

var result = query.RunQuery().OfType<WorkItem>();
Run Code Online (Sandbox Code Playgroud)

这给了我一个WorkItem类型列表.当我遍历result.FirstOrDefault().Fields属性时,它确实给了我一些有关ShelveSet的有用信息,它与Code Review相关,即"Associated Context".使用此信息,我可以查询ShelveSet:

var versionStore = tfs.GetService<VersionControlServer>();
var shelveset = versionStore.QueryShelvesets("someCodeReviewId_xxxx","someUserName");
Run Code Online (Sandbox Code Playgroud)

这给了我一个ShelveSet项目,但那就是我被困住的地方.

我查看Microsoft.TeamFoundation.CodeReview了两者Microsoft.TeamFoundation.CodeReview.ComponentsMicrosoft.TeamFoundation.CodeReview.Controls库提供的命名空间,但这对我没有任何帮助.

我的问题是:如何通过TFS API找到代码审查期间ShelveSet上的实际注释(包括一般注释和文件注释)?

c# api object-model tfs2012 tfs-code-review

18
推荐指数
2
解决办法
7362
查看次数

数据模型和对象模型之间有什么区别?

CWM是数据建模

UML是对象建模.

有人可以解释一个外行人可以理解的区别吗?

data-modeling object-model

17
推荐指数
1
解决办法
3万
查看次数

加载以前的型号版本

我正在使用initWithContentsOfURL:构造函数加载NSManagedObjectModel模型,如下所示:

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MyDocument" withExtension:@"momd"];
NSManagedObjectModel *mom = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
Run Code Online (Sandbox Code Playgroud)

但是,这只能让我访问模型的最新/当前版本.是否可以使用相同的momd文件加载以前的版本?怎么样?

core-data object-model

17
推荐指数
1
解决办法
2714
查看次数

MongoDB上的多语言数据建模

我试图在MonogoDB上建模我的对象,但不确定如何继续.我正在构建一个产品目录:

  • 不经常更改产品目录.批量操作可以每周/两周进行.
  • 产品信息有多种语言(英语,西班牙语,法语),可随时添加新语言.

以下是我要做的事情:我需要对产品目录进行建模以捕获多语言功能.假设我有:

product : { 
 _id:xxx,
 sku:"23456",
 name:"Name",
 description: "Product details", 
 tags:["x1","x2"]}... 
}
Run Code Online (Sandbox Code Playgroud)

当然,名称,描述,标签和可能的图像将根据语言而改变.那么,我该如何建模呢?

  1. 我可以为每种语言设置单独的集合,例如:enProducts,esProducts等
  2. 在产品本身中使用各种语言进行JSON表示:

    product :{
       id: xxx,
       en: {
             name: "Name",
             description: "product details.."
           },
       es: {
             name: "Name",
             description: "product details.."
           },
       ...   
    }
    
    Run Code Online (Sandbox Code Playgroud)


或者还有其他解决方案吗?在这里需要MongoDB建模专家的帮助:)

object-model mongodb

13
推荐指数
5
解决办法
6490
查看次数

嵌套的单例类方法查找

首先,我明白这个问题在现实世界中没有应用,我只是好奇.

想象一下,我们有一个使用单例方法的类:

class Foo
    def self.bar
    end
end
Run Code Online (Sandbox Code Playgroud)

如果我们调用Foo.bar它,它将首先在每个祖先的单例类中搜索一个方法Foo,然后查看.class方法及其祖先引用的类.我们可以确认,Foo.singleton_class.ancestors返回:

[#<Class:Foo>, #<Class:Object>, #<Class:BasicObject>,
 Class, Module, Object, Kernel, BasicObject]
Run Code Online (Sandbox Code Playgroud)

但是如果我们有一个嵌套的单例类会发生什么,比如:

class Foo
  class << self
    class << self
      def bar
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

如果我们打电话Foo.singleton_class.singleton_class.ancestors,它会返回:

[#<Class:#<Class:Foo>>, #<Class:#<Class:Object>>,
 #<Class:#<Class:BasicObject>>, #<Class:Class>, #<Class:Module>,
 #<Class:Object>, #<Class:BasicObject>, Class, Module, Object, Kernel, BasicObject]
Run Code Online (Sandbox Code Playgroud)

我不明白这个层次结构是如何组织的.

ruby inheritance dynamic-dispatch object-model

10
推荐指数
1
解决办法
509
查看次数