zoukankan      html  css  js  c++  java
  • 获取集合的方法

    考虑下面的需求,从配置文件中,读取一些数据,这些数据放到一个集合中,获取集合,使用方法A,完成任务。该怎么做?

    1、首先明确一点,坚决不能让A返回引用。

    2、方法A在栈上创建集合,返回集合。不存在内存泄漏的问题,但是要付出copy代价。

    3、方法A在堆上创建集合,返回集合的指针,copy代价很低,但是会存在内存泄漏的问题。

    4、主调方法创建一个集合,把集合的引用传递给被调方法A,A修改集合的内容。这个不直观,客户要一些东西,方法A要求客户准备一个容器,A在容器中填充内容。

    5、采用哪种方法,要看具体的使用场景,如果集合内容很小,copy代价小,就不要用指针,否者用指针。

    6、还要考虑另外一种情况,返回的集合是要客户维护,还是A维护。比如,客户在一个循环中,每次都需要集合,这就会导致A重复读取配置文件。解决这个问题的办法是:客户在循环之前,先把集合保存起来。但是,考虑下面的情况,程序中很多地方,不同的客户,都需要这个集合,那么方法A应该维护集合,读取一次,内部保存起来,下次客户再申请,直接返回就行了。这就意味着,程序运行过程中,集合的内存是不能释放的,可以使用指针,为了避免内存泄漏,可以使用智能指针。

  • 相关阅读:
    Web开发者需具备的8个好习惯
    全球十大搜索引擎排名
    ContextWrapper
    PackageManager
    重写equals方法的注意事项
    StackOverflow 并不只是一个问答网站
    android 中ids.xml资源的使用
    The method dismissDialog(int) from the type Activity is deprecated
    百度员工离职总结:如何做个好员工?
    Mysql 自动化任务
  • 原文地址:https://www.cnblogs.com/nzbbody/p/3411215.html
Copyright © 2011-2022 走看看