gpt4 book ai didi

java - 通过 setter 方法执行过滤?

转载 作者:行者123 更新时间:2023-12-02 00:03:56 28 4
gpt4 key购买 nike

我需要对 setter 方法进行一些过滤并考虑修改它们,例如:

class Dog{
int speed;

public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
if(speed < 100)
this.speed = speed;
else
this.speed = 100;
}
}

我不记得有任何这样的实现,它可能不合法(或者至少不正确)。相反,我应该编写名为 setFilteredSpeed(int speed) 的附加 setter 方法,将 setSpeed(int speed) 保留为默认值吗?这种方式似乎没有破坏bean的方法。

class Dog{
int speed;

public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public void setFilteredSpeed(int speed) {
if(speed < 100)
setSpeed(speed);
else
setSpeed(100);
}
}

第三个选项是准备单独的过滤器类,如下所示:

class DogFilter{

public int doSpeed(int speed) {
if(speed < 100)
return speed;
else
return 100;
}
}

class Main(){
public static void main(){
Dog dog = new Dog();
dog.setSpeed(DogFilter.doSpeed(165));
}
}

我认为这是常见用法;但第二种选择似乎更接近 OOP 方法。哪种方式才是正确的方式?

最佳答案

假设您确实想要完全防止无效速度,那么您的第一个选择是正确的方法

关于java - 通过 setter 方法执行过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14268107/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com