天道酬勤,学无止境

MSON在蓝图中描述对象属性(MSON to describe object attributes in blueprint)

问题

我有一个类似于这里描述的问题。

我有一个看起来像这样的 JSON:

{
  "photos": [
    {
      "key": "y37dmj10jkwof/moOIUB8912JKVgh",
      "caption": "A world of gamers.",
      "tags": [
        "game",
        "japan"
      ],
      "attributes": {
        "copyright": true,
        "use": [
          "public",
          "private"
        ]
      }
    }
  ]
}

我正在尝试使用 MSON 描述属性,以呈现蓝图。 但是,我并不成功。 这是我的尝试:

+ Attributes (required, object)
    + photos (required, array)
        + (object)
            + key (required, string) - Photo key
            + caption (required, string) - Photo caption
            + tags (required, array)
                + game (string)
                + japan (string)
            + attributes (required, object)
                + (object)
                    + copyright: true (required, boolean)
                    + uses (required, array)
                        + public (string)
                        + private (string)

任何人的想法? 任何输入将不胜感激。

回答1

这是一个我认为可以满足您要求的示例:

+ Attributes
    + photos (required, array)
        + (object)
            + key: y37dmj10jkwof/moOIUB8912JKVgh (required) - Photo key
            + caption: A world of gamers (required) - Photo caption
            + tags: game, japan (required, array)
            + attributes (required)
                + copyright: true (required, boolean)
                + use: public, private (required, array)

请注意,您可以将数组的示例值作为逗号分隔列表放置,并且通常不需要明确说明类型是string还是object (除非它没有名称)。 至于attributes对象,可以直接把key放在上面,不需要再用+ (object)再做一层

希望这可以帮助!

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • MSON to describe object attributes in blueprint
    I have an issue similar to what is described here. I have a JSON that looks like this: { "photos": [ { "key": "y37dmj10jkwof/moOIUB8912JKVgh", "caption": "A world of gamers.", "tags": [ "game", "japan" ], "attributes": { "copyright": true, "use": [ "public", "private" ] } } ] } and I am trying to describe the attributes using MSON, to render the blueprint. However, I am not successful at it. Here is my attempt: + Attributes (required, object) + photos (required, array) + (object) + key (required, string) - Photo key + caption (required, string) - Photo caption + tags (required, array) + game
  • MSON,让JSON序列化更快
    问题我们经常需要在主线程中读取一些配置文件或者缓存数据,最常用的结构化存储数据的方式就是将对象序列化为JSON字符串保存起来,这种方式特别简单而且可以和SharedPrefrence配合使用,因此应用广泛。但是目前用到的Gson在序列化JSON时很慢,在读取解析这些必要的配置文件时性能不佳,导致卡顿启动速度减慢等问题。Gson的问题在哪里呢?笔者用AndroidStudio的profile工具分析了activity.onCreate方法的耗时情况。图 1图 2如图1,可以发现Gson序列化占用了大部分的执行时间,从图2可以更直观地看到Gson.fromJson占用了61%的执行时间。分析Gson的源码可以发现,它在序列化时大量使用了反射,每一个field,每一个get、set都需要用反射,由此带来了性能问题。如何优化知道了性能的瓶颈之后,我们如何去修改呢?我能想到的方法就是尽量减少反射。Android框架中由JSONObject来提供轻量级的JSON序列化工具,所以我选择用Android框架中的JSONObject来做序列化,然后手动复制到bean就可以去掉所有的反射。我做了个简单的测试,分别用Gson和JSONObject的方式去序列化一个bean,看下各自速度如何。使用JSONObject的实现方式如下:public class Bean { public String key
  • 如何在C#中序列化Exception对象?(How to serialize an Exception object in C#?)
    问题 我正在尝试在C#中序列化一个Exception对象。 但是,由于Exception类未标记为[Serializable],因此似乎是不可能的。 有办法解决这个问题吗? 如果在应用程序执行过程中出了点问题,我想知道发生的异常。 我的第一反应是将其序列化。 回答1 我之前所做的是创建一个自定义的Error类。 它封装了有关Exception的所有相关信息,并且可以XML序列化。 [Serializable] public class Error { public DateTime TimeStamp { get; set; } public string Message { get; set; } public string StackTrace { get; set; } public Error() { this.TimeStamp = DateTime.Now; } public Error(string Message) : this() { this.Message = Message; } public Error(System.Exception ex) : this(ex.Message) { this.StackTrace = ex.StackTrace; } public override string ToString() { return this
  • 使用 Apiary 创建模拟服务 API(Create Mock Service API using Apiary)
    问题 我正在尝试创建用于测试目的的模拟 api 服务。 我们已经在另一个团队中使用 Apiary,所以我从那里开始。 到目前为止,我注意到如果我想要两个单独的调用需要模拟两个请求。 例如,要获取 ID 为 1 和 2 的注释,需要明确写出如下响应: /notes/1 /notes/2 有没有办法避免这种情况? 不可否认,我仍在努力创建蓝图。 回答1 看看 private-e9e59-pingdomcheck.apiary-mock.com/v1/gists/1。 这里的数字1是{id} 。 您当然只能得到一般定义的响应(就像我使用 id 42 一样)。 现在在 MSON 中有更多的事情要做。 一旦发布,请求中不同参数的不同回复将是可能的。
  • MIN / MAX与ORDER BY和LIMIT(MIN/MAX vs ORDER BY and LIMIT)
    问题 在以下查询中,您认为哪种方法更好? 您的原因是什么(代码效率,更好的可维护性,更少的WTFery)... SELECT MIN(`field`) FROM `tbl`; SELECT `field` FROM `tbl` ORDER BY `field` LIMIT 1; 回答1 在最坏的情况下,如果要查看未索引的字段,则使用MIN()需要对表进行一次完整的传递。 使用SORT和LIMIT需要一个文件SORT 。 如果针对大表运行,则预期的性能可能会存在显着差异。 作为无意义的数据点,我的开发服务器上的106,000行表中MIN()花费了0.36s,而SORT和LIMIT花费了0.84s。 但是,如果您正在查看索引列,则很难注意到该差异(两种情况下无意义的数据点均为0.00s)。 然而,查看一下explain的输出,看来MIN()能够简单地从索引中选取最小值(“选择经过优化的表”和“ NULL”行),而SORT和LIMIT仍需要执行索引的有序遍历(106,000行)。 实际的性能影响可能微不足道。 看起来MIN()是MIN()的方法-在最坏的情况下它更快,在最好的情况下没有区别,是标准SQL,并且最清楚地表达了您想要获得的价值。 正如mson所提到的,似乎唯一需要使用SORT和LIMIT情况是,您正在编写一个通用操作,该操作从任意列中查找前N个值或后N个值
  • 为没有使用过“类”和“对象”的人定义最好的方法是什么?(What's the best way to define the words “class” and “object” to someone who hasn't used them?)
    问题 我的邻居正在学习“ Java入门”,并请我帮助解释一些第一天的概念。 我意识到,由于我每天都这样做,所以我没有初学者的想法,因此很难从头开始将其中的某些内容联系起来。 对于我来说,实际上并非不重要的一个解释是“什么是一堂课?” 到目前为止,我最好的: 变量保存某种数据; 一个变量可能是名字,另一个变量可能是您的体重(磅)。 方法是一个函数,它可以完成工作,并且可以使用这些变量来完成工作。 一种方法可能会在屏幕上显示您的姓名,或者告诉您要拥有一个良好的BMI比率您应该减掉多少体重。 一个对象既包含变量又包含方法。 一个对象可能代表您,第二个对象可能代表我。 类是一种蓝图或模板,用于描述将在每个对象中使用的方法和变量。 对象是实例化的(一个实例)类; 一个对象就是某种东西,而类仅仅是制造这种东西的计划。 继续该示例,我们有一个Person对象,该对象实例化以保存Alice的数据,另一个Person对象被实例化以保存Bob的数据,另一个实例化为Carol,依此类推。 我如何调整此示例以使其更有意义,和/或有什么更好的方法? 此时,“实例化”一词感觉太沉重了。 (我认为这是一个有用的问题,但显然是主观的;标记为社区Wiki。) 回答1 一个类和一些类实例: (由Wikipedia托管的公共领域图片) 回答2 类:对象::蓝图:建筑 回答3 “汽车”是一类。
  • 对象和实例之间的区别(Difference between object and instance)
    问题 我知道以前曾提出过这样的问题,但是我仍然觉得答案太模糊了,我(而且,从某种意义上说,是某些/大多数初学者)很难理解。 我一直在尝试自学比程序和基本OOP更广泛的编程概念。 我了解OOP的具体概念(您创建一个具有数据(成员)和函数(方法)的类,然后在运行时实例化该类以实际执行此类操作。 我认为我对类的含义有所了解(某种实例的设计蓝图,该实例在编译时以其相似性创建)。 但是如果是这样,什么是物体? 我还知道,在基于原型的语言中,这甚至可以使事情变得更糟,但这也许就是为什么在我的脑海中需要明确区分对象和实例。 除此之外,我还与“对象”和“实例”的概念作斗争。 我阅读的许多资源(包括SO的答案)都说它们基本相同,而语义上却有所不同。 别人说这两者之间存在真正的概念差异。 SO的专家可以帮助初学者拥有在OOP领域中前进的“啊哈”时刻吗? 注意:这不是家庭作业,我不上学-但是,我认为这会对寻求家庭作业帮助的人有所帮助。 回答1 房屋设计的蓝图就像一个班级描述。 根据该蓝图建造的所有房屋均为该类别的对象。 给定的房子是一个实例。 回答2 事实是,面向对象的编程通常会通过在开发的哲学方面与计算机的实际机械工作之间建立脱节而造成混乱。 我将尝试为您对比两者: OOP的基本概念是:类>>对象>>实例。 类别=蓝图。 对象是基于“蓝图”(如房屋)建造的实际事物。 实例是对象的虚拟副本
  • 类和对象实例之间有什么区别?(What is the difference between classes and object instances?)
    问题 类是方法和变量在单个单元中的绑定。 对象是类的实例。 这些是编程书籍中类和对象的定义。 我的朋友说,类是对象的蓝图。 对象是蓝图的真实“事物”。 他举了一个例子:如果Company是一个类,则INFOSYS,CTS和TCS等是对象。 每当我想到类和对象时,这些定义都会使我感到困惑。 如果channel是一个类,那么该类的对象是什么? 如果说水是阶级,那阶级的对象是什么? 你能澄清一下吗? 回答1 如果channel是一类,则“开始体育”,“ BBC”和“ ESPN”是其对象。 如果水是一类,则以“新鲜石灰水”和“汤”为对象。 尽管您可能会觉得这种解释含糊不清,但这是我能想到的答案。 这是您可以学习和区分类的方法: 假设您有一个“汽车”课程 它的对象是现代,福特,铃木。 它将具有相同的方法,但设计会有所不同->这就是将对象和类与现实世界联系起来的方式。 回答2 一个类指定其实例的行为。 类也是类的实例(类的类称为“元类”)。 类是一个抽象。 您可以通过找到适用于一组对象的通用属性来找到一个类。 然后,一个类是一个模板,它定义要包含在特定种类的对象中的方法(行为)和变量(状态) 班级(教室外)的识别需要经验。 从Alan Kay那里读到任何东西,他是Object Technology的发明者,也是Smalltalk的发明者之一,Smalltalk是迄今为止唯一的纯对象环境。
  • 什么是类,引用和对象?(What are classes, references and objects?)
    问题 我从事Java编程已有两年了,显然我遇到了一个问题,我又无法理解和区分类,引用和对象(我不明白为什么我忘记了这些概念)。 让我们来解决这个问题,尽管我已经知道什么是对象,但是我不确定类或引用是否相同。 有人可以很好地理解并且完整地区分什么是类,引用和对象吗? 我所知道的是,该类更像是对象的模板(房屋的蓝图,其中类是蓝图,而房屋是一个对象)。 回答1 如果您喜欢隐喻的隐喻: 一堂课就像一所房子的蓝图。 使用此蓝图,您可以建造任意数量的房屋。 您建造的每个房屋(或用OO语言实例化)都是一个对象,也称为实例。 每个房子当然都有一个地址。 如果您想告诉某人房子在哪里,请给他们一张卡片,上面写上地址。 该卡是对象的参考。 如果要参观房屋,请查看卡上写的地址。 这称为解引用。 您可以随意复制该参考,但是只有一所房子-您只是在复制上面有地址的卡,而不是房子本身。 在Java中,您不能直接访问对象,只能使用引用。 Java不会相互复制或分配对象。 但是您可以复制引用并将其分配给变量,以便它们引用同一对象。 Java方法始终是按值传递的,但是该值可以是对象的引用。 所以,如果我有: Foo myFoo = new Foo(); // 1 callBar(myFoo); // 2 myFoo.doSomething() // 4 void callBar(Foo foo) { foo = new
  • 类,对象和实例之间的区别(The difference between Classes, Objects, and Instances)
    问题 什么是Java中的类,对象和实例? 回答1 Java(和任何其他编程语言)是根据类型和值建模的。 从理论上讲,值是某种信息量的表示,类型是一组值。 当我们说值X是类型Y的实例时,我们只是说X是类型Y的值集合的成员。 这就是“实例”一词的真正含义:它描述的是一种关系而不是事物。 Java编程语言的类型系统支持两种类型,原始类型和引用类型。 引用类型进一步分为类和数组类型。 Java对象是引用类型的实例。 对象是类实例或数组。 (JLS 4.3.1) 这就是类型理论的观点。 实际上,大多数Java开发人员将单词“ instance”和“ object”视为同义词。 (这包括我在内,然后我试图快速地解释一些事情。)大多数开发人员使用“值”一词而不是“实例”来指代原始类型的实例。 回答2 类是用于创建对象的蓝图。 对象是类的实例-这是您使用特定类制作的具体“东西”。 因此,“对象”和“实例”是同一件事,但是“实例”一词表示对象与其类的关系。 如果看一个例子,这很容易理解。 例如,假设您有一个House类。 您自己的房子是对象,并且是House类的实例。 姐姐的房子是另一个对象( House类的另一个实例)。 // Class House describes what a house is class House { // ... } // You can use class
  • 数据属性和方法属性之间的差异(Differences between data attributes and method attributes)
    问题 什么是方法属性和数据属性? 它们之间的区别是什么?它们之间的共同点是什么? 我正在阅读python 2.7.9(https://docs.python.org/2/tutorial/classes.html#random-remarks),突然两者都变得难以理解。 我会欣赏它的光线。 回答1 属性是使用点语法obj.attribute在另一个对象上查找的变量。 Python的设计方式,属性查找可以完成各种事情,并且如果您不太了解正在发生的事情(链接到的文档对此有所警告),则这种多样性有时会导致错误。 最基本的问题是,属性查找可以找到存储在对象实例字典中的值,或者可以从对象的类(或基类,如果正在进行继承)中找到内容。 方法是存储在类中的函数,但是您通常通过在实例上查找它们来使用它们(“绑定”该方法,并在调用该方法时将对象作为第一个争论对象插入)。 检查时间的确切顺序有点复杂(我在回答另一个问题时描述了整个过程),但是在最基本的级别上,实例属性通常优先于类属性。 如果同时存在一个实例属性和一个具有相同名称的类属性,则通常只能访问该实例属性。 如果这是意想不到的,这可能会非常令人困惑。 考虑以下代码: class Foo(object): def __init__(self, lst): self.lst = lst def sum(self): self.sum = sum
  • 面向对象编程中“接口”的定义是什么(What is the definition of “interface” in object oriented programming)
    问题 好的,我的一个朋友来回探讨编程中“接口”的含义。 什么是“接口”的最佳描述。 对我来说,接口是类的蓝图,这是最好的定义吗? 回答1 接口是开发中比较重载和令人困惑的术语之一。 它实际上是抽象和封装的概念。 对于给定的“框”,它声明该框的“输入”和“输出”。 在软件领域,这通常意味着可以在框上调用的操作(以及参数),在某些情况下,还指这些操作的返回类型。 尽管通常(在非常好的实践中)在声明附近(例如,通过注释)记录它们或选择良好的命名约定,但这并不能定义这些操作的语义。 但是,不能保证将遵循这些意图。 打个比方:关掉电视看一下。 它的界面是它具有的按钮,各种插头和屏幕。 它的语义和行为是它需要输入(例如,电缆编程)并具有输出(在屏幕上显示,声音等)。 但是,当您查看未插入的电视时,您正在将期​​望的语义投影到界面中。 众所周知,插入电视后可能会爆炸。但是,根据电视的“界面”,您可以假定电视不会煮咖啡,因为它没有水。 在面向对象的编程中,接口通常定义具有该接口的类的实例可以响应的方法(或消息)集。 造成混乱的是,在某些语言(如Java)中,存在一个具有其特定于语言的语义的实际接口。 例如,在Java中,它是一组方法声明,没有实现,但是接口也对应于一种类型,并遵守各种类型的输入规则。 在其他语言中,例如C ++,您没有接口。 类本身定义了方法
  • 什么是C ++中的类和对象?(What is a Class and Object in C++?)
    问题 什么是C ++中的类和对象? 我们可以说一个类是一个对象吗? 回答1 一个类就像一个蓝图,一个对象就像是用该蓝图建造的房屋。 您可以拥有许多具有相同布局/平面图的房屋(读取类),但每个房屋都是其自己的实例(读取对象)。 每个人都有自己的所有者,家具等。 请注意,还有一些对象的蓝图不是类(例如,整数)。 回答2 对象是类的实例。 回答3 对象是一些数据,在运行时内存中有一个地址。 有不同类型的对象(例如,int,float等)。 您可以创建用户定义的类型,称为“类”。 例如,我可以将Dog定义为类... class Dog {}; ...然后创建几个对象,每个对象都是该类的一个实例... Dog fido; Dog spot; 回答4 我将尝试给出更多的技术解释,而不是抽象的解释。 我认为对于新手来说,诸如“类是一个蓝图,而对象是由该蓝图制成的东西”之类的定义是无法理解的,仅仅是因为这类定义是抽象的且没有上下文的。 类和对象在面向对象的世界中具有纯抽象的含义,但为简单起见,我将其定义简化为更实际的定义。 考虑以下语句: int a; “ int”是类型,“ a”是类型为“ int”的变量。 C ++提供了多种方法来让程序员定义新类型。 例如: typedef int* int_ptr; int_ptr a; 在此示例中,新类型定义为int_ptr。 “ int_ptr”是类型,
  • 实例和对象之间有什么区别?(What is the difference between an Instance and an Object?)
    问题 实例和对象之间有什么区别? 有没有区别? 回答1 实例和对象来自面向对象的编程。 对于Java,C ++和Smalltalk等某些编程语言,描述和理解代码很重要。 在结构化编程中使用的其他语言中,这个概念不存在。 这是结构化编程的观点。 没有真正的重大差异,应该占用您过多的时间。 也许有些人可能会花一些花哨的语言来写一些东西,但是到了最后,对于程序员,开发人员,程序员,架构师而言,它是一个类的实例和一个对象是指同一事物,并且经常可以互换使用。 在我的职业生涯中,我从未见过任何挑剔的人,花了半个小时试图指出差异,因为实际上没有差异。 可以将时间更好地花费在其他开发工作上。 UPDATE至于斯威夫特,这是苹果谁发明斯威夫特喜欢: 传统上将类的实例称为对象。 但是,Swift类和结构在功能上比其他语言要紧密得多,本章的大部分内容描述了可应用于类或结构类型的实例的功能。 因此,使用了更通用的术语实例。 回答2 很好的问题。 我将以最简单的方式进行解释:假设您的篮子里有5个苹果。 这些苹果中的每一个都是苹果类型的对象,它具有一些特征(即大,圆,长在树上)。 用编程的术语来说,您可以拥有一个名为Apple的类,该类的变量为size:big,shape:round,habitat:grows在树上。 要在您的购物篮中放置5个苹果,您需要实例化5个苹果。 Apple apple1
  • 如何定义一个实例?(How to define an instance?)
    问题 面试中有人问我一个问题,但我无法回答...这是问题 您将如何定义实例[c#]? 我的答案是它是object的别称...这个问题的正确答案是什么... 回答1 实例是蛋糕,配方是蛋糕。 每当您使用构造函数创建对象时,您都在创建实例。 回答2 MyObject obj =新的MyObject(); 回答3 我将实例描述为对象的单个副本。 可能有一个,可能有数千个,但是一个实例是一个特定的副本,您可以对其进行引用。 回答4 类是蓝图,实例是已完成的构造。 回答5 “实例”是在内存中分配的对象,通常由编译器指令“ new”初始化,根据模板的结构呈现,该模板通常是内置的语言功能(例如本机数据结构:Dictionary,List)等),内置的.NET类(如WinForm?),用户定义的类或.NET中的struct;等等。 甚至是枚举。 例如,虽然“类”的“实例”将体现或包含该类的所有属性,字段和方法,但在以下情况下,这些字段和/或属性可能有也可能没有分配值创建了“实例”。 类模板还将限制类的任何实例内部的属性,字段和方法的可访问性。 实例是从“某些事物的抽象计划”创建的“真实事物”。 回答6 是的,我的解释是要提到只有类才能“定义”实例。 或类似的东西,我可能会在代码中提到一个示例,或寻求对该问题的澄清。 回答7 类类似于蓝图,而实例则是类/蓝图的具体实现。 实例还通过其身份
  • 在PHPDoc中记录数组选项的最佳方法?(Best way to document Array options in PHPDoc?)
    问题 我正在努力编写易于理解的文档,这些文档描述了传递给函数的Array选项的多树结构。 这是一个示例数组结构。 $arr = [ 'fields' => [ 'title' => [ 'name' => 'Document.title', 'format' => 'string', 'readonly' => true ] ] ]; 上面的数组有许多可能的选项,但这用作理解该结构的函数的参数。 function doSomething(array $arr) { ... } 我想记录一下如何在PHPDoc中构造数组,但是我不确定什么是正确的方法。 这就是我现在所拥有的。 /** * Holds configuration settings for each field in a model. * Defining the field options * * array['fields'] array Defines the feilds to be shown by scaffolding. * array['fields'][fieldName] array Defines the options for a field, or just enables the field if array is not applied. * array['fields'][fieldName
  • Typescript中的接口和类之间的区别(Difference between interfaces and classes in Typescript)
    问题 Typescript接口和类之间有什么区别? 我什么时候使用班级? 什么时候使用接口? 它们的优点是什么? 我需要为后端服务器的http请求创建某种类型(使用Angular 2进行此操作),例如:}, "fields": { "project": { "id": "10000" }, "summary": "something's wrong", "issuetype": { "id": "10000" }, "assignee": { // not neccesary required "name": "homer" }, "reporter": { "name": "smithers" }, "priority": { // not neccesary required "id": "20000" } } 我应该使用什么来构建这些模型? 谢谢! 回答1 2019年:差异和用法更新 首先,有一个明显的区别:语法。 这是一个简单但了解差异的方法:接口属性可以以逗号或分号结尾,而类属性只能以分号结尾。 现在有趣的东西。 关于何时使用和不使用的部分可能是主观的-这些是我为团队成员提供的准则,但是出于有效的原因,其他团队也可能会有其他准则。 如果您的团队有其他不同的想法,请随时发表评论,我很想知道为什么。 接口:允许定义一种类型,该类型将在设计和编译期间用于强类型化。 它们可以被
  • 我如何使用类?(How do I use classes?)
    问题 我对编程还很陌生,有一件事让我感到困惑。 什么是类,如何使用类? 我有点明白,但我似乎无法找到完整的答案。 顺便说一句,如果这是特定于语言的,那么我正在用 PHP 编程。 编辑:还有一件事我忘了说。 具体来说,我想询问如何在类中使用定义函数。 我见过在类中定义函数的 PHP 代码示例,但我真的不明白为什么。 回答1 尽可能简洁:一个类描述了一组可以对自身执行操作的数据。 例如,您可能有一个表示图像的类。 此类的对象将包含描述图像所需的所有数据,然后还将包含旋转、调整大小、裁剪等方法。它还具有可用于询问对象有关其自身属性的方法,像 getColorPalette 或 getWidth。 这与能够直接访问原始(非对象)数据集合中的调色板或宽度相反 - 通过通过类方法访问数据,对象可以强制执行保持一致性的约束(例如,您不应该更改宽度变量而不实际将图像数据更改为该宽度)。 这就是面向对象编程与过程编程的不同之处。 在过程式编程中,你有数据,也有函数。 函数作用于数据,但没有数据的“所有权”,数据和使用它的函数之间也没有基本的联系。 在面向对象的编程中,您拥有的对象是数据与动作的组合。 每种类型的数据都有一组定义的操作,它可以对自身执行,以及一组定义的属性,它允许函数和其他对象以定义的、尊重约束的方式读取和写入。 重点是将程序的各个部分相互分离。 使用 Image 类
  • ssm------SpringBoot
    目录 SpringBoot理解SpringBoot入门SpringBoot业务描述API设计分析项目结构分析SpringBoot 项目启动分析启动过程概要分析延迟加载对象作用域分析对象生命周期方法 SpringBoot 项目中的依赖注入过程分析案例设计及分析代码编写及测试分析 SpringBootBucket SpringBoot Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了项目需要的框架,我们要使用或添加某个框架时,只需要在pom中添加依赖即可由springboot帮我们将其整合进项目中。 https://start.spring.io可以生成项目 下载生成的项目后,eclipse需要将解药后的项目从工作区导入工具File–>import idea可以通过工具直接创建springboot项目。 特点 为基于Spring的开发提供更快的入门体验开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测
  • 什么是顶点数组对象?(What are Vertex Array Objects?)
    问题 我今天才从该教程开始学习OpenGL:http://openglbook.com/the-book/ 我进入了第2章,在其中画了一个三角形,并且我理解了除了VAO之外的所有内容(此首字母缩写可以吗?)。 本教程具有以下代码: glGenVertexArrays(1, &VaoId); glBindVertexArray(VaoId); 虽然我知道该代码是必需的,但我不知道它的作用。 尽管我从未在此之后使用VaoId(除了销毁它之外),但没有它,代码将无法运行。 我假设这是因为必须将其绑定,但是我不知道为什么。 是否需要将这些确切的代码包含在每个OpenGL程序中? 本教程将VAO解释为: 顶点数组对象(或VAO)是描述顶点属性如何存储在顶点缓冲区对象(或VBO)中的对象。 这意味着VAO不是存储顶点数据的实际对象,而是顶点数据的描述符。 顶点属性可以通过glVertexAttribPointer函数及其两个姊妹函数glVertexAttribIPointer和glVertexAttribLPointer来描述,我们将在下面探讨其中的第一个。 我不了解VAO如何描述顶点属性。 我没有以任何方式描述它们。 它是否从glVertexAttribPointer获取信息? 我想一定是这样。 VAO仅仅是glVertexAttribPointer提供信息的目的地吗? 顺便说一句