`
pangyi
  • 浏览: 33708 次
  • 性别: Icon_minigender_1
  • 来自: 古城西安
社区版块
存档分类
最新评论

请教关于继承和引用引申的类设计问题

阅读更多
假设有两个类:DataTag 与 DataTagValue。DataTagValue是DataTag对象将过加工后产生的对象。
目前有两种方式,设计这种关系。
第一种是:Is a的方式,继承的方式。如下代码所示:
public class DataTag {
    protected int tagId;//测点Id
    protected String tagName;//测点名称
    protected String tagDesc;//测嗲描述
    protected String tagUnit;//测点单位
    protected String tagDataSource;//测点数据源
    protected String tagType;//测点的类型。
    protected int tagOrder;//标签排序用
}
public class DataTagValue extends DataTag {

	/**
	 * 
	 */
	private static final long serialVersionUID = 2688238773074983855L;

	private Date date;// 日期
	private float value;// 值
	private String singnal;// 状态
	private String valueType;
}


第二种是:Has a的方式,即引用的方式。如下代码所示:
public class DataTag {
    protected int tagId;//测点Id
    protected String tagName;//测点名称
    protected String tagDesc;//测嗲描述
    protected String tagUnit;//测点单位
    protected String tagDataSource;//测点数据源
    protected String tagType;//测点的类型。
    protected int tagOrder;//标签排序用
}
public class DataTagValue  {

	private DataTag tag;//这里将此作为私有属性来处理。

	private Date date;// 日期
	private float value;// 值
	private String singnal;// 状态
	private String valueType;
}


采用这两种方式有什么区别?可能有人会提到和怎么使用有关系。那我在这里假设一种使用场景。

假设现在要计算某DataTag对象的10个时间的数据,会产生10个DataTagValue,这种情况下继承方式和引用方式,哪种 刚能节省内存?




分享到:
评论
3 楼 pangyi 2008-09-11  
laiseeme 写道
你这个还不是装饰者模式   设计模式用不上了


感觉上是引用方式比较节省内存。

采用引用方式,DataTag的属性信息只需在内存中保留一份,产生的DataTagValue对象只须引用其内存地址即可,这样内存的开销会小很多。
2 楼 laiseeme 2008-09-11  
你这个还不是装饰者模式   设计模式用不上了
1 楼 laiseeme 2008-09-11  
按照设计原则  组合优先于继承  那就has啊

相关推荐

    建造者模式【Builder Pattern】(三)问题引申

    在本文中,我们将深入探讨建造者模式在实际开发中的应用及其可能遇到的问题和引申话题。 一、建造者模式的基本结构与角色 1. 产品(Product):这是要构建的复杂对象。产品类通常包含多个组成部件,这些部件可以...

    21323010054-赵展硕-《C++语言程序设计》结课论文副本.docx

    涵盖了面向对象程序设计的基本概念、C++语言的基本概念、面向对象程序设计方法、C++语言的发展历史、面向对象软件开发环境、C++的程序结构、数据类型、程序设计风格、面向对象程序设计语句、类与对象、数组、指针、...

    FLASH创意设计教程-相关引申知识PDF

    FLASH创意设计教程-相关引申知识PDf,大家看看

    springboot垃圾分类网站的设计与实现ppt12页

    springboot本文研究了垃圾分类网站的设计与实现,在文章开端首先对个研究背景、研究现状和研究内容作了简单的介绍,然后通过系统分析,引申出本系统研究的主要内容。 通过对Java语言和MYSQL数据库的简介,从硬件和...

    c语言数据类型引申和思考

    在“数据类型引申和思考”这个主题中,我们将深入探讨C语言的数据类型及其应用。 首先,C语言的基本数据类型包括整型(如int)、浮点型(如float和double)、字符型(char)以及布尔型(在标准库中的stdbool.h中...

    行业文档-设计装置-一种带有轮子的图书及所引申的文化用品.zip

    标题中的“一种带有轮子的图书及所引申的文化用品”揭示了这个设计装置的核心概念,它是一种创新的图书形式,结合了移动性和文化内涵。这种设计可能涉及到图书馆学、工业设计、文化产品开发等多个领域,旨在提升图书...

    古汉语词义引申的方式.doc

    本文主要探讨了三种主要的词义引申方式:连锁式引申、辐射式引申和综合式引申。 1. 连锁式引申: 连锁式引申,又称链条式引申,是指词义由本义逐渐发展至直接引申义,再到间接引申义,如同链条般逐环递进。以“要”...

    基于VC 的汽车离合器设计软件Clutch_CAD的开发.pdf

    在这个文档中,特别提到了面向对象程序设计的基本思想是使用对象、类、继承、封装和消息,这在Clutch_CAD软件中得到了应用,有助于正确调用和管理离合器参数数据库的数据,避免数据混乱。 5. 开发平台VisualC++6.0...

    程序设计之四书五经 -- pdf

    这本书可能旨在通过古代文化的比喻和引申,深入浅出地讲解编程的基础和高级技巧,帮助读者理解并掌握程序设计的本质。在IT行业中,程序设计是构建软件、应用程序和系统的关键技能,因此对这一领域的深入理解和熟练...

    产品经理产品设计-人力资源HOUSE模型在SAAS产品规划管理中的引申应用.pdf

    【产品经理产品设计-人力资源HOUSE模型在SAAS产品规划管理中的引申应用】 在当前的互联网时代,各行各业都受到网络营销、物联网、人工智能等新技术的深刻影响,业务模型和组织架构正经历着前所未有的变革。传统的...

    ios 导航栏放置多个按钮及引申的ivar变量的问题

    3. 自定义UIView:创建一个继承自UIView的子类,将所有需要的按钮放入该视图,并调整它们的位置和约束。然后在`- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated`中覆盖父类...

    产品经理产品设计-人力资源HOUSE模型在SAAS产品规划管理中的引申应用.docx

    【产品经理产品设计-人力资源HOUSE模型在SAAS产品规划管理中的引申应用】 在当前快速发展的互联网时代,人力资源管理中的HOUSE模型被广泛应用于各个行业,包括SAAS产品规划管理。HOUSE模型,源自于人力资源管理的...

    行业分类-外包设计-用来施加用于浸泡物质的包装件部件的方法的介绍分析.rar

    虽然标题和描述并未直接涉及到IT技术细节,但我们可以从这个主题中引申出与软件开发、项目管理以及工业设计相关的知识要点。 首先,外包设计意味着公司将一部分或全部设计工作委托给外部的专业团队或个人完成。在IT...

    技术架构视图-详细设计

    1. **识别设计元素**:通常情况下,设计元素可以从分析类中引申出来。例如,可以通过行为分析来识别大部分的分析类,并在此基础上进一步细化为设计类。 2. **继承与组合的选择**:这是一个经常被讨论的问题。继承...

Global site tag (gtag.js) - Google Analytics