The Programming Language Tips[3]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 chelsea 的 blog

我推荐的解决方法

使用静态构造函数(c#),或静态初始化块(java)

[c#]

     public class someclass {

         static someclass(){

              init();

              types = new hashtable();

              types.add(...);

              types.add(...);

         }

     }

[java]

     public class someclass {

         static{

              init();

              types = new hashmap();

              types.put("", "");

              types.put("", "");

         }

     }

效果

1,once,only once

2,定义中对异常处理等有要求,可参考规范

2,多线程时是否有问题,我不清楚,讨论一下 


只读代理

问题

对象内部有一个集合,由这个对象来控制其元素的增加删除,但客户需要访问该集合取得自己想要的信息,而对象不可能为所有的客户都提供对应的方法,因此需要返回内部的这个集合,但不允许客户增加或删除其元素

我见过的解决方法

直接返回代表集合的成员引用,仅在文档中要求客户不能增删集合中的元素

     public class someclass {

         private list attrs;

         public list getattributes(){

              return attrs;

         }

     }

本文关键:The Programming Language Tips
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top