吸气器/设置器中的逻辑-最佳实践是什么?

时间:2019-03-05 17:22:18

标签: java accessor mutators

我有一个同事,不断在我们的getter / setter方法中添加逻辑。从我在该主题上看到的所有类似问题来看,这似乎都是目标,并且没有明确的答案。

我认为我的同事正在尝试将此逻辑放在此处,因此不会在代码中重复。他本可以创建一种单独的方法来遵守DRY原理,但对他来说,将其放在吸气剂/装料器中是最好的方法。 首先,我们使用Lombok库来减少样板代码,以便它将为我们自动生成这些代码。尽管有一些决定要明确定义它们,而不是让Lombok生成它们,以便可以向它们添加逻辑。我感觉到的问题是,除非您采用这些方法(调试时谁确实会采用getter / setter方法?),否则您将不了解这些方法中还会发生其他事情,因此这会产生误导,并且还会破坏单一职责。

我试图了解最佳做法是什么?下面,我提供了一些简单的示例进行演示。

public class MyClass {
    private MyKeyClass key;

    public MyKeyClass  getKey {
        //I feel like this if condition should not be here, method also
        //doing more than one thing. It's setting and getting
        if(key == null) {  
            key = new MyKeyClass();
        }
        return key;
    }

    public void setKey(MyKeyClass key) {
        this.key = key;
    }

    private SomeOtherClass someOtherClass;

    public SomeOtherClass getSomeOtherClass() {
        return this.someOtherClass;
    }

    public void setSomeOtherClass(SomeOtherClass someOtherClass) {
        this.someOtherClass= someOtherClass;
        //Other logic that is being set, but for the key class
        //I don't think this belongs either and should be done elsewhere
        this.key.setKey(someOtherClass.getKey());
    }
} 

0 个答案:

没有答案