当前位置:  开发笔记 > 运维 > 正文

实体对象数据属性的getter和setter

如何解决《实体对象数据属性的getter和setter》经验,为你挑选了1个好方法。

我最近开始在Java工作,并被介绍到疯狂和疯狂的吸气剂和安装者的世界.我起初讨厌它,但很快就习惯了.太习惯了.

我最近花了很多时间思考课堂设计.我要做的其中一件事就是避免为所有事情做吸气剂和制定者的陷阱.但是,我所做的大部分工作都是使用主要是数据容器的实体,而我不确定在这些情况下,getter和setter实际上是不合适的.

这是一个使用公共属性的简单示例.

class Space {
    public String name;
    public String description;
    Space(final String name, final String description) {
        this.name = name;
        this.description = description;
    }
}

这是一个使用私有属性并使用getter和setter的简单示例.

class Space {
    private String name;
    private String description;
    Space(final String name, final String description) {
        this.name = name;
        this.description = description;
    }
    public String getName() {
        return this.name;
    }
    public void setName(final String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }
    public void setDescription(final String description) {
        this.description = description;
    }
}

在这些示例中,应该能够更改字段namedescription字段.

我觉得getter/setter示例更清晰,并隐藏了什么namedescription是什么的实现细节.如果需要,它还允许稍后进行验证.

我已经阅读了几个关于getter和setter是邪恶和/或反模式的讨论,但它真的感觉那些可能不适用于这种情况.

也许我还有一些选择尚未考虑过.我愿意接受建议!



1> cletus..:

第一个版本(公共属性)不是一个好主意.第二个更好.正如Josh Bloch所说,"赞成不变性":

public class Space {
    private final String name;
    private final String description;

    public Space(final String name, final String description) {
        this.name = name;
        this.description = description;
    }

    public String getName() {
        return name;
    }

    public String getDescription() {
        return description;
    }
}

话虽这么说,吸气剂和制定者往往被滥用.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有