您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> 关于单例模式和静态方法的问题,还有一个关于封装的问题。

关于单例模式和静态方法的问题,还有一个关于封装的问题。

来源:网络整理     时间:2016/5/18 17:03:13     关键词:单例模式,静态方法

关于网友提出的“关于单例模式和静态方法的问题,还有一个关于封装的问题。”问题疑问,本网通过在网上对“关于单例模式和静态方法的问题,还有一个关于封装的问题。”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:关于单例模式和静态方法的问题,还有一个关于封装的问题。
描述:

单例模式和静态方法的讨论,网上有很多!

我总结一下:单例模式和静态方法在很多地方是类似,但是单例模式更体现面向对象。

其实我想问的是,仅仅对于工具类和配置文件,到底用哪一种更好呢。(非工具类,如果只要一个实例,确实觉得应该用单例),但是工具类和配置,就跟math一样,那为什么还用单例好呢?(问题1)

另外,我在看文章的时候,有些人讲到单例是为了将来,这让我想到了另一个问题。

我刚参加工作,看别人的代码中有这么一种类。

private String F_A
    private String F_B;
    private String F_C;
    public String getF_A() {
        return F_AddTime;
    }
    public void setF_A(String f_A) {
        F_A = f_A;
    }
        public String getF_B() {
        return F_C;
    }
    public void setF_A(String f_B) {
        F_C = f_B;
    }     

  public String getF_C() {
        return F_C;
    }
    public void setF_A(String f_C) {
        F_C = f_C;
    }
这不是教科书的例子,而是实际项目中,别人的代码把某些类每个属性都设为private,然后提供getter /setter,但是在getter/setter又不加以任何条件限制。这种只为封装而封装的方法有什么意义?还是说,为了将来?或者java推荐这么写?(问题二)
解决方案1:

java中的单例模式正确姿势:http://weibo.com/1674333040/BEkMh80lY?type=comment#_rnd1423317615017

解决方案2:

private List list; public List getList() { return Collections.unmodifiableList(list);

}
解决方案3:

1.单例其实只是为了节省资源, 把无状态的纯工具类设置成只能初始化一次, 事实上如果你愿意, 你可以把单例变成静态类完全没有问题, 具体情况具体分析, 不要为了单例而单例.

2.在多数情况下, getter setter是简单返回值本身的, 但是某些情况下需要提前处理一下, 比如你有2个得到金额数字的方法 一个是得到阿拉伯数字, 一个是汉字, 这样你的getter setter就可以写入代码同步这个数字的表示, 比如你可以在set阿拉伯数字的时候同时改变中文数字, 也可以在set中文数字的时候同时改变阿拉伯数字, 如果你不通过getter 和setter封装而直接赋值的话就没有这个方便了.


以上介绍了“关于单例模式和静态方法的问题,还有一个关于封装的问题。”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1164197.html

相关图片

相关文章