关于私有方法签名是否有OOP约定-直接使用字段或获取参数?
我想知道当使用私有方法时,下面哪一项是更好的OOP实践。字段应该直接使用,还是像参数一样提供给方法关于私有方法签名是否有OOP约定-直接使用字段或获取参数?,oop,methods,field,private,convention,Oop,Methods,Field,Private,Convention,我想知道当使用私有方法时,下面哪一项是更好的OOP实践。字段应该直接使用,还是像参数一样提供给方法 class MyClass { private int myNumber; public MyClass(int number) { this.setMyNumber(number); } public void setMyNumber(int number) { this.myNumber = number; }
class MyClass {
private int myNumber;
public MyClass(int number) {
this.setMyNumber(number);
}
public void setMyNumber(int number) {
this.myNumber = number;
}
public int getMyNumber() {
return this.myNumber;
}
public int getTransformedNumber() {
return transformNumberInSomeWay1();
// OR
return transformNumberInSomeWay2(this.getMyNumber());
}
private int transformNumberInSomeWay1() {
int number = this.getMyNumber();
<... transformation of the number ...>
return number;
}
private int transformNumberInSomeWay2(int number) {
<... transformation of the number ...>
return number;
}
}
class-MyClass{
私有整数;
公共MyClass(整数){
这个.setMyNumber(数字);
}
公共无效setMyNumber(整数){
this.myNumber=number;
}
public int getMyNumber(){
返回此.myNumber;
}
public int getTransformedNumber(){
返回transformnumbersinsomeway1();
//或
返回TransformNumberHomeway2(this.getMyNumber());
}
私有int TransformNumberInHomeWay1(){
int number=this.getMyNumber();
返回号码;
}
专用int TransformNumberHomeway2(int编号){
返回号码;
}
}
如果我对字段myNumber以外的其他内容使用转换数方法,则第二种方法更好。如果我没有将它用于其他任何事情,但我不知道该类的开发将如何进行呢?我应该总是用第二种方式来做,还是让需要的人以后再做改变 我将省略私有TransformNumberSomeway方法,并在getTransformedNumber()方法中实现逻辑。很明显,你必须省略参数并访问函数中的变量。这取决于你,没有硬性的规则,你说第二种方法会使以后更容易抽象/重构/提取它是正确的。但你当然不知道你是否需要这样做。下一件让你抓狂的事情是你应该使用命令模式而不是单个参数。。。