`
canonical
  • 浏览: 366939 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[导入]关于对象的两个注解

阅读更多

1. 对象的一个特性是局域化。每一个对象函数(非静态函数)都是在对象的上下文中调用的,因而隐含假设了一定的环境信息,这些信息以封装的形式被使用。
   一个具体的体现是函数的命名,如果没有对象,我们必须给函数进行全局命名,例如 find_friends, find_users, find_departments, 而在对象的环境下,我们可以抽象出一个采用局域化命名的接口 IQueriable.find(),实现系统的深度分解。
   在对象成员函数的内部,我们通过统一预定的名字(this指针)来访问对象环境中的变量。而在 jsplet web框架中的action和前台jsp中,我们通过thisObj变量来访问后台逻辑对象的上下文,而不需要知道对象的具体名称 (objectName)。

2. 对象的另一个特性是静态化。我们从面向过程走向面向对象时,我们思维中的图像出现了一个重大的变化:在面向过程的程序中,我们想象中存在的是一个个动态的处理过程,它们在时间轴上按照一定的顺序依次执行。而在面向对象的图景中,我们考虑的主要是一个静态化的世界,系统分解为对象,而对象是同时存在于我们的思维中的。这里一个重要的技术手段就是成员函数。例如我们编写一个成员函数getChildren(), 这个函数的语义是返回一个数据变量,概念上它是静态的,但其内部实现其实可能是很复杂的,非常的动态化:可能需要查询数据库,可能需要校验权限等等。
理想的情况下,我们可以利用成员函数封装可以实现对象图的遍历。例如  x.getParent().getChilldren(), 在微软的COM模型或者Sun的JavaBean标准下,我们可以写成
x.parent.children。
特别注意这里的属性语法原则上是与时间无关的,即在同一个时刻我们认为这些属性同时存在着,是一个静态的关系。而以下的调用出现了明确的步骤,因而明确引入了时间因素
ITree parent = node.getParent();
if(parent == null)
   return null;
List children = node.getChildren();
return children;

在witrix平台的tpl模板引擎中使用的EL(Expressin Language)表达式语法会自动处理函数返回值为null的情况,因而维护了对象图的语义,不需要中断调用过程来进行异常处理,是简化界面编程的一个重要方面。

这里顺便提一句:人的思维是倾向于静态化的,但现实世界却是在不断的变动中的。正所谓不变的只有变化。Von Neumann体系结构强迫我们在最细节处引入变化过程,很多时候是过分的负担。我们需要的是识别出各种可以静态描述的部分,集中精力于那些真正需要随需应变的应用。

分享到:
评论

相关推荐

    文件导入导出工具类和自定义注解

    下面将详细阐述这两个概念及其应用。 一、文件导入导出工具类 文件导入导出工具类通常是一组预先封装好的方法,用于读取和写入各种文件格式,如CSV、Excel、XML或JSON。这些工具类能够帮助开发者快速实现数据的...

    java-excel导入导出注解版内用教程说明

    Apache POI 提供了 SXSSF(Streaming Usermodel API) 和 XSSF(XML Spreadsheet API) 两个API用于处理.xlsx文件,HSSF 用于处理.xls文件。本教程主要关注.xlsx格式,因为它支持更多的Excel功能。 注解方式的导入...

    Java的注解包,在使用注解的时候导入的jjar包

    Java的注解(Annotation)是元数据的一种形式,它提供了在代码中嵌入信息的方式,这些信息可以被编译器或运行时环境...这两个JAR包是Java开发者日常工作中不可或缺的工具,对于保证代码质量和提升开发效率至关重要。

    java 利用POI对Execel表格的统一导入与校验(利用Hibernate Validator)

    在Excel方面,POI提供了HSSF(用于旧的BIFF格式,即.xls文件)和XSSF(用于新的OOXML格式,即.xlsx文件)两个API。 2. **Excel导入**: 使用Apache POI,开发者可以创建Java程序来读取Excel文件中的数据。这通常涉及...

    Java 使用poi导入excel 并使用xml做数据验证

    首先,Apache POI提供了HSSF和XSSF两个API,分别用于处理老版本的BIFF8格式(.xls)和新版本的OOXML格式(.xlsx)。在这个案例中,我们关注的是处理OOXML格式的Excel文件,因此会使用XSSF API。 导入数据的过程中,...

    springmvc常用注解标签详解

    要使 Spring 认识该控制器类,需要将其交给 Spring 来管理,方法有两种:一种是定义 MyController 的 bean 对象,另一种是告诉 Spring 该到哪里去找标记为@Controller 的 Controller 控制器。 2. @RequestMapping ...

    spring 支持@RequestBody注解依赖包

    在Spring框架中,`@RequestBody`注解是一个非常重要的组件,它主要用于处理HTTP请求体中的数据,将请求体中的JSON或XML数据映射为Java对象。...通过合理使用这两个工具,我们可以构建出高效、灵活的RESTful服务。

    通用excel导入/导出 (poi)

    对于Excel文件,POI提供了HSSF(用于旧版的BIFF格式,即.xls)和XSSF(用于较新的OOXML格式,即.xlsx)两个API。 在导入Excel数据时,通常需要创建一个Java对象(也称为POJO,Plain Old Java Object),该对象的...

    java_poi导入excel通用工具类

    - 在Excel处理方面,POI 提供了 HSSF(Horrible Spreadsheet Format)和 XSSF(XML Spreadsheet Format)两个API,分别用于读写旧版的 `.xls` 文件和较新的 `.xlsx` 文件。 - POI 提供了 Sheet、Row、Cell 等类,...

    java使用Json所需要导入的所有jar包

    最后,`com.squareup.okhttp3`的`okhttp.jar`和`okio.jar`是OkHttp网络库的一部分,它们主要用于HTTP请求和响应,当需要从服务器获取或发送JSON数据时,这两个库可以帮助你进行高效的网络通信。 为了在Java项目中...

    Spring 注解方式新加jar包.rar

    2. `@Autowired`:这个注解用于自动装配bean,Spring容器会根据类型或名称自动将依赖注入到字段或构造函数中。 3. `@Qualifier`:当有多个相同类型的bean时,可以配合`@Autowired`指定具体要注入哪个bean。 4. `@...

    Springboot 常用注解汇总说明

    2. `@Service`、`@Repository`:这两个注解常用于业务逻辑层和服务数据访问层,虽然它们没有特殊的功能,但可以作为标记,方便组件扫描。 五、导入配置文件 1. `@ImportResource`:用于导入XML配置文件,尽管...

    SpringBoot中必须掌握的27个注解.pdf

    2. **@ComponentScan**:这个注解会自动扫描并加载标记了@Controller、@Service、@Repository和@Component的类到Spring容器。它是Spring组件扫描的基础。 3. **@Conditional**:Spring 4新增的注解,允许根据特定...

    easyexcel+validation excel导入导出下载

    这个例子可能包括一个简单的Excel模板,以及一个展示如何结合使用这两个工具的Java程序。你可以通过运行这个示例,了解如何将数据校验集成到Excel导入导出流程中。 总结来说,EasyExcel与Validation的结合使用,...

    跟我学Spring3(12.3)零配置之注解实现Bean定

    4. `@PostConstruct`和`@PreDestroy`:这两个注解分别标记初始化和销毁方法。在Bean的生命周期中,Spring会在Bean创建后调用`@PostConstruct`方法,在Bean销毁前调用`@PreDestroy`方法。 5. `@Configuration`和`@...

    C3P0,MyBatis依赖,注解依赖jar包

    在Java开发中,Spring框架和MyBatis是两个非常重要的组件。Spring以其强大的依赖注入和管理能力,而MyBatis则提供了简洁灵活的SQL映射框架。将两者结合使用,可以构建出高效、可维护的业务系统。在这个场景中,"C3P0...

    2-Spring注解1

    Spring通过两种方式实现DI:XML配置和注解。基于注解的DI使得类的依赖关系可以直接在类的成员变量上声明,减少了XML配置文件的复杂性。 3. **基于注解的配置优势** - **简洁性**:注解使得配置更直观,减少了XML...

    Spring注解@Resource和@Autowired.doc

    了解这两个注解的区别和使用场景是非常重要的。 首先,@Autowired 是 Spring 提供的注解,需要导入 org.springframework.beans.factory.annotation.Autowired 包。它可以在字段和 setter 方法上使用。如果同时在...

    gson内涵两个版本.zip

    这个压缩包文件包含了Gson的两个不同版本:gson-2.8.0.jar和gson-1.4.jar。这两个版本之间存在一些重要的差异,下面将详细介绍它们各自的特点以及在实际应用中的使用情况。 首先,我们来看gson-1.4.jar。这是Gson的...

    POI技术将excel解析导入mysql.pdf

    这个类使用了Java持久化API(JPA)注解来描述字段和实体的关系,以便将Java对象持久化到数据库。实体类中定义了多个属性,例如用户ID、用户名、密码、年龄、性别、电话和生日,并通过@Column注解指定了字段的可空性...

Global site tag (gtag.js) - Google Analytics