精华内容
下载资源
问答
  • 对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据操作的结合,使数据操作封装于对象的统一体中。 **什么是类?**具有相同特性...

    Java语言中什么是类?什么是对象?什么是实体?它们之间关系并举例说明。

    **什么是对象?**对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。
    **什么是类?**具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
    什么是实体?java实体就是具体的类
    关系:类和对象是面向对象系统分析里的概念,实体是结构化系统分析里的概念
    举例:张三是一个学生,那么张三其实是比较具体的一个人,而学生则是一个抽象事物。此时可以创建一个学生类,包含学号,年龄,班级等。如果指明张三这些属性,则张三是学生类的一个实体。

    展开全文
  • 实体引言在领域驱动设计里,实体的设计可以说是通用语言的核心... 实体具有可变性的,这是一个对象比较明显的区分,也即实体是可以持续得变化,持续得修改,并且具有唯一的标识。在设计实体的时候需要跳出CRUD的

    实体

    引言

    在领域驱动设计里,实体的设计可以说是通用语言的核心,也是最开始在模型划分中需要考虑的。怎么样设计实体和怎么样划分限界上下文同样重要。实体的概念就是要保证通用语言的完整性。领域驱动让设计实体的关注点从数据的属性和表的关联转化到了富有行为的领域概念上。

    实体是具有可变性的,这是一个和值对象比较明显的区分,也即实体是可以持续得变化,持续得修改,并且具有唯一的标识。在设计实体的时候需要跳出CRUD的设计思维。把关注重点从数据模型设计转移到实体模型上。实体是能够表达什么概念,具有哪些行为,领域范围是哪些。实体的唯一标识是用来区分实体的,在实体的整个生命周期中这个唯一标识都是不变的。

    设计实体

    实体设计中,需要先确定实体的唯一标识。在Java的实体设计中,可以借助框架来实现唯一标识。这里先不讨论具体实现细节。设计唯一标识其实可以有多种方式。

    1. 用户输入唯一标识,程序再根据输入生成可识别的数值和符号,这种方式不方便修改生成规则,而且也会存在输入冲突。
    2. 应用程序生成,比如java自带的UUID生成器。apache的Commons的id生成组件。
    3. 持久化机制,DB的序列值Sequence或者自增主键。
    4. 其他上下文提供唯一标识,比如本地上下文也有一个本地的User,然后用全局的比如登录系统的用户id作为本地User实体的主键,这种需要谨慎使用,尽量保证系统的自治性。
    5. 委派标识。很多情况下,唯一标识都是和领域概念无关的,客户端也无需关注这个标识。这时候就可以用一些ORM工具来处理,写一个抽象父类,来专门做id生成。其他子类的实体只需要关注自己领域的模型和行为即刻。
      具体实现可以用Hibernate或者Jpa这些工具。如下是一个用jpa生成自增主键的父类。
    package com.lijingyao.bookrent.entity;
    
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.MappedSuperclass;
    
    /**
     * Created by lijingyao on 15/12/20 13:14.
     */
    @MappedSuperclass
    public abstract class LayerSuperType {
    
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;
    
        protected Long getId() {
            return id;
        }
    
        protected void setId(Long id) {
            this.id = id;
        }
    }
    

    实体就可以不用关注id生成,如下,是一个代表用户的实体。

    package com.lijingyao.bookrent.entity;
    
    import com.sun.istack.internal.NotNull;
    
    import java.util.Calendar;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Index;
    import javax.persistence.Table;
    
    /**
     * Created by lijingyao on 15/12/20 12:48.
     */
    @Entity
    @Table(
            name = "br_user",
            indexes = {@Index(name = "IDX_USER_NAME", columnList = "name", unique = false)})
    public class User extends LayerSuperType {
    
        @NotNull
        @Column(name = "name")
        private String name;
    
    
        @Column(name = "utc_create")
        private Calendar utcCreate;
    
        @Column(name = "utc_modified")
        private Calendar utcModified;
    
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Calendar getUtcCreate() {
            return utcCreate;
        }
    
        public void setUtcCreate(Calendar utcCreate) {
            this.utcCreate = utcCreate;
        }
    
        public Calendar getUtcModified() {
            return utcModified;
        }
    
        public void setUtcModified(Calendar utcModified) {
            this.utcModified = utcModified;
        }
    }
    

    定义实体

    定义实体需要先理解了领域的通用语言。因为实体需要在表达完整的通用语言基础上再对实体的属性进行定义,然后还需定义实体的唯一标识。
    在定义实体时还需要清楚,哪些行为是属于这个实体的,哪些职责是本实体应该具备的。在实体的属性验证过程也应该回归实体。调用验证的过程也不一定是到了持久化这一步之后才进行,前置验证一样可以把验证行为回归到实体。
    现在一些流行的开源框架也支持了多种实体验证方式,比如可以用JPA的注解来进行验证,这种是属于延迟验证,但回归到实体的本质和行为上,验证本身也是实体行为的一环。

    值对象

    概念和特性

    值对象值不变的对象,也就是说有特定含义的表达。所以值对象没有唯一标识,也作为反映通用语言的一种方式,就像领域驱动中的一个部件。值对象相对实体概念上更加简单,但关键点是一个领域概念是设计成实体还是值对象。
    在设计选择的时候可以针对值对象的特征进行比较:
    1. 值对象是用来度量或者描述了领域中的一件东西。
    2. 可作为不变量(不变性)
    3. 将不同的相关属性组合成一个概念整体
    4. 可以和其他值对象进行相等比较(属性相等就是同一个对象)
    5. 不会对协作对象造成副作用(无副作用)
    其实,在整理值对象的概念时,往往会在实体上设计很多值对象,在java中最常见的就是用枚举来表示和实现。枚举的不变性可以方便表达很多概念。值对象的设计是为了内聚得表达通用语言的一个概念。在领域建模的时候,对于一些不需要唯一标识的概念就可以设计成值对象。比如我们有一个租书一同,现在描述这样一个概念,对于一个实体“书”,如果有一组这样的概念“文学书”约定文学书最多只能借出1个月,科技类的书最多可以租借十天。这里的文学书是一个不变的概念,那么对于书籍的分类就可以设计成一组值对象。对于值对象的管理和生成最好利用工厂方法或者Builder的设计模式。构造函数就初始化好值对象有利于概念的整体性。
    对于第五点的无副作用行为,其实结合Java8的lambda表达式,或者说函数式编程能更好的理解,函数式编程就是无副作用的,因为它不会改变对象内部的状态,同样,值对象也不会改变其他实体的状态,只是用来输出一组概念。

    在上下文中集成

    集成值对象要保持最小化集成和最少职责。如果值对象需要依赖上游上下文的聚合。假设还是刚才的租书的场景,书籍管理系统是在一个上下文中,出租书籍上下文中需要表示一个如下概念:书籍类别(bookType)+ 出租记录(record)可以定义一个“XX类Top10 租售书籍”。这个概念就可以设计成一个值对象-BestRent。这里的BestRent并不包含Book中的type属性。而是通过bookType 这样一个自己拥有的属性来表明一个书的类型。如下是一个简单的值对象:

    package com.lijingyao.bookrent.vo;
    
    /**
     * Created by lijingyao on 15/12/26 15:00.
     */
    public class BestRent {
    
        /**
         * The type of a book.category see {@link BookType}
         */
        private String bookType;
    
        /**
         * the rent number of one book.
         */
        private Integer topNum;
    
        public BestRent() {
        }
    
        public BestRent(String bookType, Integer topNum) {
            this.bookType = bookType;
            this.topNum = topNum;
        }
    
        public BestRent topNScience(Integer topNum) {
            if (null == topNum) {
                throw new IllegalArgumentException("topNum may not be null.");
            }
            return new BestRent(BookType.SCIENCE.name(), topNum);
        }
    
        public BestRent top10Science() {
            return new BestRent(BookType.SCIENCE.name(), 10);
        }
    
        public void setBookType(String bookType) {
            this.bookType = bookType;
        }
    
        public void setTopNum(Integer topNum) {
            this.topNum = topNum;
        }
    
        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
    
            BestRent bestRent = (BestRent) o;
    
            if (bookType != null ? !bookType.equals(bestRent.bookType) : bestRent.bookType != null) return false;
            return !(topNum != null ? !topNum.equals(bestRent.topNum) : bestRent.topNum != null);
    
        }
    
        @Override
        public int hashCode() {
            int result = bookType != null ? bookType.hashCode() : 0;
            result = 31 * result + (topNum != null ? topNum.hashCode() : 0);
            return result;
        }
    }
    

    通过值对象就不需要关注Book领域的业务和BookType了。这个值对象保持了无副作用性,因为它不会改变任何领域对象的状态,也不需要唯一标识。一个固定的name和一个固定的bookType就可以定义一个不变的概念,比如”自然科学类的Top10”就可以通过top10Science方法来获得。
    同样需要注意到,值对象最好实现equals和hashCode方法。对于一组概念描述的值对象来说,只要其表达完整概念的属性值相同,值对象就是相同的。这就能保证top10Science和topNScience(10)需要返回相同的对象。这就是值对象的不变性。

    标准类型(Standard Type)

    标准类型是标识某些事物的描述对象的表示方式。比如表示货币类型,标准类型可以用RMB,JPY,AID,USD等货币类型。系统中建立标准类型可以统一通信标准,防止有人拼写错误,或者用非标准的描述对象(比如临时的String对象)来表示标准概念。
    对于标准类型,在定义概念的上下文中可以建模成实体,在消费方可以建模成值对象。如果消费方的上下文没有必要维护一个描述类型对象的生命周期,那么就可以将其建模成值对象。或者为了方便维护,将标准类型放到单独的限界上下文中。消费方只需要关注标准类型中自己需要用到的属性就可以了。这也是为了尽量最小化集成。
    对于有限集合的标准类型可以建模成枚举类。后面会介绍一种结合策略模式的方式去维护值对象的行为。

    策略模式实现值对象设计

    在构建一个值对象的时候,需要考虑到不变性的概念,可以隐藏对象本身的Setters方法。只有通过构造函数才能使用委派给自己的属性进行设置。
    现在考虑对于上文所描述的书籍类型进行值对象设计。这里的书籍类型是一种有限集合的值对象,所以我们可以用Java的Enum来设计。
    这里简单说一下,使用策略模式是因为不同的值对象,或者说有限集合的值对象对于某种固定的行为操作(比如本例中的获取TopN的广告语)有着不同的实现。并且结合Java8的lambda表达式,就可以更好地定义我们的StrategyHandler。值对象的不同Handler,就可以定义成不同的Function,从而简化代码实现。
    这里假设有一个获取图书广告语的RESTful接口。资源的Controller如下

    package com.lijingyao.bookrent.controllers;
    
    import com.lijingyao.bookrent.service.RentService;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.HttpStatus;
    import org.springframework.http.ResponseEntity;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    
    @RestController
    @RequestMapping("/books")
    public class BookResource {
    
        @Autowired
        private RentService rentService;
    
        @RequestMapping(value = "/{type}/adv", method = {RequestMethod.GET})
        public ResponseEntity getBestSellBookAdv(@PathVariable("type") String type, @RequestParam("num") Integer num) {
            return new ResponseEntity(rentService.getBookAdvByType(type, num), HttpStatus.OK);
        }
    
    }
    

    controller直接通过service获取资源数据。如果存在不同类别的书籍,那么service内部就需要有一个switch 来实现,最简单粗暴的方式就是:

    
    public String getBookAdvByType(String type, Integer num) {
            if (type.equals("SCIENCE")) {
                return "自然科学 图书的畅销Top :" + num.toString();
            }else if(type.equals("NOVEL")){
                return "小说 图书的畅销Top :" + num.toString();
            }else{
                ...
            }
            return "没有找到此类别图书广告语.";
        }   
    

    这种方式可以发现,对于以后扩展书籍类型的话,需要修改Service的实现,也就不符合开放闭合原则。如果借助枚举类来管理书籍类型,再用函数式编程处理广告语产生的行为。那么Service的代码就可以写成:

       package com.lijingyao.bookrent.service;
    
    import com.lijingyao.bookrent.service.vo.BookType;
    
    import org.springframework.stereotype.Service;
    
    /**
     * Created by lijingyao on 15/12/26 14:37.
     */
    @Service
    public class RentService {
    
    
        public String getBookAdvByTypeStrategy(String type, Integer num) {
            BookType bookType = BookType.valueOf(type);
            if (null == bookType) {
                return "There is no advertise of this kind of book.";
            }
            return bookType.bestRentOf(num);
        }
    
    
    }
    

    行为bookType.bestRentOf 的实现交给了具体的策略。策略的Handler,也就是枚举类如下:

      package com.lijingyao.bookrent.service.vo;
    
    import java.util.function.Function;
    
    /**
     * Created by lijingyao on 15/12/20 13:43.
     */
    public enum BookType {
    
    
        NOVEL((topNum) -> BestRentUtils.advOfBestRent("小说", topNum)),
        SCIENCE(((topNum) -> BestRentUtils.advOfBestRent("自然科学", topNum))),
        TECHNOLOGY(((topNum) -> BestRentUtils.advOfBestRent("科学技术", topNum)));
    
        private Function<Integer, String> strategy;
    
        public String bestRentOf(Integer topNum) {
            return strategy.apply(topNum);
        }
    
    
        BookType(Function<Integer, String> strategys) {
            this.strategy = strategys;
        }
    
    }
    
    

    启动Springboot 输入:http://localhost:8080/books/NOVEL/adv?num=20
    就可以看到结果。”小说 图书的畅销Top :20”。这里的处理只是简单的字符串拼接,在具体的上下文中,对于值对象会有更为复杂的计算逻辑。那么就可以把每个单独的又有共性的策略抽取出来,每一个值对象都会有自己的Strategy类来封装内部的实现。如果要扩展策略,也只要新增一个策略实现,以及在枚举中添加一组类型即可。

    结语

    无论是值对象还是实体,在设计持久化的时候,需要先根据领域模型来设计数据模型,而不是根据数据模型来设计领域模型。这是一种DDD的思维方式,所以要尽量避免数据模型从领域模型中泄露给客户端。下一篇文章会总结下领域服务和应用服务。

    展开全文
  • JAVA面向对象什么

    千次阅读 2019-05-12 13:13:09
    JAVA面向对象面向对象?...对象就是具有某些的特殊属性(成员变量)行为方式(方法)的实体。 现实生活中的任何事物都可以看作是对象,无论是具体或抽象的事物,Java中就有了一种思想叫做“万物皆对象”...

    面向对象?What???

    • 众所周知 Java是一种面向对象的语言,那么什么是面向对象?

    什么是对象(Object)?

    • 对象就是具有某些的特殊属性(成员变量)和行为方式(方法)的实体。
    • 现实生活中的任何事物都可以看作是对象,无论是具体或抽象的事物,Java中就有了一种思想叫做“万物皆对象”。

    扩展:
    属性是先人根据可描述实物抽象出来的。
    行为是这个抽线实物可以具体实现的功能。
    举例说明:
    我是一个人,我可以找对象。
    人(属性,Property) 找对象(具体行为,Behavior)

    什么是面向对象?

    • 在了解面向对象之前要知道什么是面向过程,解释如下。

    面向过程:面向过程是以函数为基础,完成各种操作,强调过程;就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

    • 面向对象是已对象为基础,完成各种操作主要强调对象、结果。是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
    • 面向对象的编程语言,是将功能封装进对象,强调具备某些功能的对象,其实面向对象的语言是基于面向过程的,因为即使是调用某个对象,被调用的对象的方法也是通过面向过程的方式编写的。但面向对象的编程思想更加符合人们的日常思维,将复杂的问题分解为不同领域的简单问题,更便于逻辑分析与分工合作。

    面向对象的编程语言有Java、c++、c#等。

    面向对象有什么特征?

    • 在面向对象的程序设计中,对象与消息传递分别表现事物及事物之间的相互关系
    • 通过封装(Encapsulation)将对象的定义和对象的实现分开
    • 通过继承(Inheritance)体现类与类之间的相互关系
    • 由此带来的实体的多态(Polymorphism)性(多态指的是Java程序在编译与执行时表现出来的不同状态)
    • 构成了面向对象的基本特征。

    下一节细说面向对象的特征。

    展开全文
  • 类的概念:类是具有相同属性服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括...

    什么是类

    类的概念:类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。

    什么是对象

    对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。

    之间的联系

    类描述了一组有相同特性(属性)和相同行为(方法)的对象。上面大概就是它们的定义吧,也许你是刚接触面向对象的朋友,
    不要被概念的东西搞晕了,给你举个例子吧,如果你去中关村想买几台组装的PC
    机,到了那里你第一步要干什么,是不是装机的工程师和你坐在一起,按你提供的信息和你一起完成一个装机的配置单呀,这个配置单就可以想象成是类,它就是一张纸,但是它上面记录了你要买的PC
    机的信息,如果用这个配置单买10 台机器,那么这10 台机子,都是按这个配置单组成的,所以说这10
    机子是一个类型的,也可以说是一类的。那么什么是对象呢,类的实例化结果就是对象,用这个配置单配置出来(实例化出来)的机子就是对象,是我们可以操作的实体,10
    台机子,10 个对象。每台机子都是独立的,只能说明他们是同一类的,对其中一个机做任何动作都不会影响其它9
    台机器,但是我对类修改,也就是在这个配置单上加一个或少一个配件,那么装出来的9 个机子都改变了,这是类对象的关系(类的实例化结果就是对象)。

    展开全文
  • Hibernate 常见误区1——正确区分值对象和实体对象  值对象和实体对象是hibernate的重要概念,当然在jpa中也有相应的概念他们在语义上是相同的。常常听到人们抱怨hibernate中对象之间的映射关系配置很难,而且经常...
  • JPA实体中字段映射补充嵌入对象

    千次阅读 2018-06-27 16:07:21
    实体中字段注解的说明* @Column注解用于列映射,name元素用于指定所映射到的列的名称* 实体字段的延迟提取: @Basic注解指定fatch元素,可以把基本映射的提取类型配置为延迟加载。但是在实际中延迟加载简单类型的字段...
  • 什么对象对象(Object)是一个应用系统中的用来描述客观...类(Class)是Java代码的基本组织模块,使用来描述一组具有共同属性行为对象的基本原型。是对这组对象的概括、归纳描述表达。类是对象的模板,它...
  • 什么实体-联系图(ER图)

    万次阅读 2013-07-09 09:08:19
    所谓符合信息是指具有一系列不同性质或属性的事物,仅有单个值得事物(例如,宽度)不是数据对象。数据对象可以是外部实体(例如,产生或使用信息的任何事物)、事物(例如,报表)、行为(例如,打电话)、事件...
  • java中什么是类什么对象

    万次阅读 多人点赞 2016-09-12 11:31:44
    Java是一种面向对象的程序设计语言(Object Oriented Programming:OOP),面向对象的程序设计语言中有类和对象的概念,那么它们在概念上到底有什么区别呢? 下面以java语言为例解释下什么是类,什么对象? 类...
  • 实体对象与类的概念

    万次阅读 2016-05-04 07:03:04
    什么实体? 指客观世界存在的某个事物 如何描述实体? 通过对实体进行抽象,来描述实体 如何抽象描述实体 每个实体都有其特征功能,特征功能通称为属性 实体实体的不同在于属性的不同 所谓抽象描述实体是...
  • Hibernate 实体对象的识别

    千次阅读 2007-07-13 16:15:00
    实体对象的识别: 在基本的Java编程中,对象的识别也是一个必须要面对的问题,在Java中可以通过”==”运算符来判断两个对象是否具有相同的引用,还可以通过从根类Object继承而来的”equals()”方法,来判断两个对象...
  • 业务对象通常被认为是代表实体,比如 或者存储的类。 这样的类具有一定的属性,比如价格,颜色,宽度,国际标准图书编号 等等. NET 地图( 对象地图中,它是由所谓的setter getter,换句话说,方法来设置或者获取...
  • 聚合根、实体、值对象

    千次阅读 2012-08-16 21:33:35
    聚合根具有全局的独一标识,而实体只有在聚合内部有独一的本地标识,值对象没有独一标识,不存在这个值对象或那个值对象的说法; 从是否只读的角度: 聚合铲除了独一标识外,其他所有状况信息都理论上可变;...
  • 类的概念:类是具有相同属性服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括...
  • 什么是类 对象 实例

    千次阅读 2014-11-11 15:51:10
    类(Class)实际上是对某种类型的对象定义变量方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础 http://baike.baidu.com/view/2390.htm 对象(object)是一件事、一个实体、一...
  • Hibernate 实体对象的三种状态

    千次阅读 2012-02-27 18:39:25
    表示该实体对象在内存中是自由存在的,也就是说与数据库中的数据没有任何的关联,该实体从未与任何持久化上下文联系过,没有持久化标识(相当与主键)。  瞬态实体的特征有:   与数据库中的记录没有任何关联,...
  • 聚合根、实体、值对象的区别?

    千次阅读 2018-07-06 17:17:33
    从标识的角度:聚合根具有全局的唯一标识,而实体只有在聚合内部有唯一的本地标识,值对象没有唯一标识,不存在这个值对象或那个值对象的说法;从是否只读的角度:聚合根除了唯一标识外,其他所有状态信息都理论上可...
  • C++ 什么对象

    千次阅读 2011-03-29 12:28:00
    对象就像是我们生活中的每个实体(如人、钢笔等等) 对象的抽象叫做类,打个比方说,人是一个类,你我是这个类的实体对象对象有数据,就像我们的身高、体重,就是类里的各种变量。 对象有动作,比如我们可以...
  • EF-实体对象建立Dome

    千次阅读 热门讨论 2014-11-26 20:28:31
    EF实体并不是相当成熟,只是一个半成品而已,EF映射了实体对象模型,同时能为我们声称每个实体对象的增删改查等各种方法就好了。EF只支持表、视图、存储过程,但是其他的对象不支持,EF只对SQL Server提供这种设计,...
  • 什么实体关系图(ERD)?

    千次阅读 2020-07-13 14:53:19
    什么实体关系图(ERD)? 转载自:https://www.visual-paradigm.com/cn/guide/data-modeling/what-is-entity-relationship-diagram/ 数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER 图...
  • 刚开始接触Hibernate的时候,只是简单的把它当做一个API工具,直到后来看到有关VOPO的内容时... 实体对象的生命周期有三种状态: 1.Transient(自由状态) 此时的实体对象和数据库中的记录无关联,只是一个普通的Jav
  • VC++中的类是什么对象什么

    千次阅读 2013-02-06 10:17:29
    什么是类? 类,就是有共同属性特征的一组事物。再啰嗦一遍:这一组事物称为一类的最主要原因是...即被定义为这个类数据类型的所有对象,都有这个类定义的数据函数。 例: class Student { private: int num;
  • 1. 聚合根、实体、值对象的区别?

    千次阅读 2012-07-13 09:16:56
    聚合根具有全局的唯一标识,而实体只有在聚合内部有唯一的本地标识,值对象没有唯一标识,不存在这个值对象或那个值对象的说法; 从是否只读的角度: 聚合根除了唯一标识外,其他所有状态信息都理论上可变;实体是...
  • 将Civil 3D曲面对象转换成AutoCAD三维实体 在Autodesk Civil 3D 中具有提供了三种不同的对象:曲面对象、体量元素(来源于ADT)、AutoCAD三维实体。同一类对象之间可以相互操作,例如可以把两个曲面对象合并,或者把...
  • 实体类、边界类控制类

    千次阅读 2017-08-23 16:42:39
    实体对象实体类的实例)用于保存更新一些现象的有关信息,例如:事件、人员或者一些现实生活中的对象实体类通常都是永久性的,它们所具有的属性关系是长期需要的,有时甚至在系统的整个生存期都需要。 边界...
  • // 实体 DTO 类中有一个属性叫 componentType 枚举类,值就是各个子类的名字 Method method = ComponentDtoMapper.class.getDeclaredMethod("to" + dto.getComponentType(), ComponentDto.class); return ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 207,142
精华内容 82,856
关键字:

对象是具有什么和什么的实体