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

[导入]摇摆于强类型与弱类型之间的对象

阅读更多

对象本质上是一种命名技术,即将一组相关的数据和函数放在一起,起一个名字。从业务层面上看,我们需要识别出大量的概念,对应到建立的领域模型,我 们就拥有不同的业务对象。这些业务对象的类型各不相同,可以区分出来。从中间件层面上看,需要从大量业务对象中抽象出共性,并以统一的方式进行处理。即在 中间件层,所有业务对象的类型被弱化下来,实际上丧失了其各自的独特性,即在中间件层看来,这些不同业务对象的类型是相同的。在中间件层的做法,一般是使 用reflection方法并结合少量全局性的接口。实际上是在结构层面上将对象作为Map来处理。这就象是应用科学与数学的关系。数学在抽象的层面上研 究结构之间的关系,每一个具体学科对相同的数学定理赋予不同的诠释。
 理论上,一个概念最好能够自适应的在不同的抽象层面上表现为不同的结构,但 受限于当前的面向对象实现技术,实际采取的技术路线多半为建立唯一的强类型模型==>通过reflection得到弱类型结构。因为java class作为元数据能够承载的信息量有限,reflection方法可能并不能充分揭示对象的结构,所以一般还要额外补充xml说明文件等。 因为我个人主要的工作都作在中间件层,所以我的做法是尽量使用Map和List等抽象数据结构,结合元数据对象,在需要强类型的时候通过对象封装来转化为 强类型。即从弱类型==>强类型。
例如:
class Work{
 public static final String KEY_NAME = "name";
 public static final String KEY_DESCRIPTION = "description";

 Map work;

 public String getName(){
  return (String)work.get(KEY_NAME);
 }

 public String getDescription(){
  return (String)work.get(KEY_DESCRIPTION);
 }

 public void setName(String name){
  work.put(KEY_NAME,name);
 }
...

 public Map toMap(){
  return work;
 }
}

分享到:
评论

相关推荐

    强,软,弱,虚1

    在Java编程语言中,引用类型是管理内存的重要概念,它涉及到对象生命周期的控制以及内存管理的优化。本文将深入探讨四种引用类型:强引用、软引用、弱引用和虚引用。 首先,我们来理解强引用(Strong Reference)。...

    弱人工智能背景下侵犯著作权罪犯罪对象之扩张.pdf

    在分析标题《弱人工智能背景下侵犯著作权罪犯罪对象之扩张》所涉及的知识点之前,首先要了解弱人工智能的概念及其对传统著作权理论的冲击。弱人工智能,又称为特定人工智能,指的是专注于特定任务并需要人类输入的AI...

    JavaScript核心及实践

    - **弱类型**: 相较于强类型语言,JavaScript不需要在代码编写时严格声明变量类型,赋予灵活性。 - **解释与编译**: JavaScript代码执行前通常经过解释器转换成机器码,但在某些环境下也可能经历预编译阶段。 ###...

    F#到带有JQuery等的JavaScript编译器。通过TypeScript类型提供程序进行映射___下载.zip

    这意味着F#开发者可以受益于强类型检查,减少运行时错误。 文件名"FunScript-master"暗示这是一个名为FunScript的项目,它可能是这个编译器的源代码仓库。FunScript的目标是让F#开发者能够利用F#编写JavaScript应用...

    javascript基本知识

    3. **类型细分不明显**:相较于强类型语言,JavaScript中的数据类型划分较为宽松,例如数字类型并不区分整型和浮点型。 **JavaScript的运行环境包括:** - **浏览器**:这是JavaScript最初的应用领域,主要用于...

    三点函数的经典可积性:弱耦合和强耦合的同源结构

    在本文中,我们开发了一种新的计算三点函数的新方法,该函数在半经典状态下的N = 4 $$ \ mathcal {N} = 4 $$ super Yang-Mills理论的SU(2)扇区中 弱耦合,这与强耦合分析非常相似。 贯穿两个不同状态的结构是所谓...

    行业分类-电子-关于可工作于强电场环境下的电场强度传感器的介绍分析.rar

    在分析报告中,可能会详细阐述传感器的具体设计,如采用的传感器类型(如电容式、电感式或光电式),信号调理电路的设计,以及如何通过校准和补偿技术提高测量精度。此外,还可能探讨了实际应用案例,展示不同应用...

    php外文翻译.docx

    这不同于强类型语言,后者需要在声明变量时指定其数据类型。在PHP中,你可以自由地将一个变量从一种类型转换为另一种类型,比如从整数变为字符串,或者从数组变为对象,无需显式声明转换。 【运算符】 PHP支持多种...

    【步步高】2014-2015学年高中化学 3.2 弱电解质的电离 盐类水解 第1课时 弱电解质的电离同课异构课件 鲁科版选修4

    弱电解质不同于强电解质,后者在溶液中几乎完全离解。弱电解质的电离通常是一个可逆过程,达到动态平衡,即电离平衡。 电离平衡是当弱电解质分子电离成离子和离子再结合成分子的速率相等时的状态,这种平衡遵循化学...

    基于流固弱耦合方法的某型飞机前起落架舱内温度分析.pdf

    流固弱耦合算法将流体和固体的物理场按照一定顺序分步求解,通过流体物理场的计算结果与固体物理场之间反复迭代求解,最终得到较快速且准确的结果。这种方法相较于强耦合算法,在工程应用方面降低了对计算机性能的...

    暴露于强极低频磁场不会改变心脏自主控制机制

    暴露于强 ELF 磁场不会改变心脏自主控制机制 Bioelectromagnetics 21:413^421 (2000) 暴露于强 ELF 磁场不会改变心脏自主控制机制 Charles Graham,1* Antonio Sastre,1 Mary R. Cook,1 Robert Kavet,2 Mary M. ...

    基于强波动理论的强湍流信道水下无线光通信系统性能分析.docx

    首先,根据强波动理论,从海水湍流折射率的光功率谱函数出发,推导出了既适用于强湍流信道、也适用于弱湍流信道的闪烁指数解析式。然后,基于统一的 Málaga 模型,推导出了水下无线光通信系统的平均误码率、平均...

    面向强一致性的分布式对象存储的I_O并行性优化.pdf

    【分布式对象存储与I/O并行性优化】 分布式对象存储是一种重要的云计算存储方式,它可以满足大规模非结构化数据(如文本、图片、视频等)的高效存储和访问需求。为了应对数据中心的高扩展性需求,良好的I/O并行性...

    深入了解JAVA 软引用

    软引用是弱于强引用的,它们之间的主要区别在于垃圾回收器对它们的态度。强引用是垃圾回收器永远不会回收的,而软引用则是垃圾回收器在内存不足时才会回收的。 软引用的主要特点是: 1. 软引用是使用SoftReference...

    电解质溶液习题及答案.doc

    德拜-休克尔公式适用于强电解质溶液,描述了电解质浓度与电导率之间的关系。电解质的无限稀摩尔电导率 Λ∞可以通过κ与c的关系曲线外推到c1/2=0得到。电解质溶液的电导率κ、摩尔电导率Λm以及极限摩尔电导率Λ∞...

    数据库系统原理与应用数据库建模ER图PPT学习教案.pptx

    弱实体集用虚线框表示,以区分于强实体集。 5. **ER图的高级技术**: - 包括使用不同图形符号来表示不同类型的联系(一对一、一对多、多对多),以及通过箭头或线段来指示联系的方向。 - 还可能涉及到联系的多重...

    JAVA毕业实习报告.pdf

    健壮性则得益于强类型机制、异常处理和自动垃圾回收。此外,实习过程中,学生通过实际项目加深了对Java和SQL Server的运用,提高了编程和问题解决能力。 通过这个实习,学生不仅在理论知识上得到了强化,而且在实践...

    java面试题

    - Java更偏向于强类型语言,而JavaScript则更灵活,是一种弱类型语言。 #### 类型转换 - **问题**:如何将浮点数1.3转换为float类型? - **解答**: - 使用强制类型转换可以实现这一目的,例如: ```java float...

    软引用SoftReference缓存图片及异步加载

    软引用是Java内存管理中的一种特性,它是一种弱于强引用但强于虚引用的引用类型。当系统内存充足时,即使对象只有软引用,垃圾回收器也不会回收这些对象。然而,当系统内存不足时,垃圾回收器会清除那些只被软引用的...

    to-do-app

    【标题】"to-do-app" 是一个用于创建和管理个人待办事项的简单应用程序。它旨在帮助用户组织日常任务,并通过设置...通过使用TypeScript,项目可以受益于强类型检查、面向对象的编程模式以及与现代开发工具的良好集成。

Global site tag (gtag.js) - Google Analytics