我正在抛出两种在类中的方法中使用变量的方法。某些方法最多使用20个变量。哪个例子最符合OOP编程结构以及为什么
**Example 1:**
$sampleclass->variable1 = 100;
$sampleclass->variable2 = 200;
$sampleclass->variable3 = 300;
$row = $sampleclass->Method();
--------------------------
class sampleclass {
public function Method(){
if ($this->variable1) {
// do something
}
if ($this->variable2) {
// do something
}
if ($this->variable3) {
// do something
}
}
}
============================================
**Example 2:**
$row = $sampleclass->Method(100,200.300);
class sampleclass {
public function Method($variable1, $variable2, $variable3){
}
}
答案 0 :(得分:1)
第二种方式,因为它更符合得墨忒耳法则:
答案 1 :(得分:0)
也许你应该考虑为每个变量创建一个方法?也就是说,如果您需要对所有三个值执行不同的操作,则可以封装每个变量赋值。
例如:
class sampleclass
{
public function doSomethingWithA($value)
{
$this->valueA = $value * 2;
}
public function doSomethingWithB($value)
{
$this->valueB = $value * 3;
}
public function doSomethingWithC($value)
{
$this->valueC = $value * 2;
}
}
答案 2 :(得分:0)
如果您希望将这些变量存储在对象中,请为它们设置(私有)数据成员。您还应该定义“getters”或mutator函数,或者至少是一个构造函数,它为这些数据成员获取所需的值。这些函数将阻止直接设置数据,这使您有机会强制执行有关数据值的规则,并防止它们被更改为不适当或不一致的值。
答案 3 :(得分:0)