gpt4 book ai didi

php - OOP - 没有 GET/SET

转载 作者:可可西里 更新时间:2023-11-01 13:40:22 25 4
gpt4 key购买 nike

"Tell, don't Ask"-principle 之后不应该在 OOP 中使用 getter。

但是如何解决(至少我是这样认为)实际上需要某个对象的一些“内部信息”的问题?那么如何更改以下示例,使 create_bill() 函数不需要询问每个项目的价格?

class chopping_cart {

private $itemlist = array();

function item_add( $name, $price ) {
$his->itemlist[]=new item( $name, $price );
}
private create_bill() {

foreach $this->itemlist AS $element;
$sum += $element->get_price();

}
}


class item {
private $name;
private $price;
function __construcor($name,$price) {...}
function get_price() {
return $price;
}
}

用法:

$sc = new shopping_cart()
$sc->item_add( "Bike", 1.00 );
$sc->item_add( "Ship", 2.00 );
$sc->create_bill();

最佳答案

如果您没有使用请求的数据/状态来更改您所指的对象,我认为使用 getter 根本没有任何问题。

原理讲的是这样一个场景:

if ($item->get_price() < 5) {
$item->set_price(5);
}

那应该变成类似 $item->set_minimum_price(5) 的东西。

关于php - OOP - 没有 GET/SET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10391380/

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