Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 面向对象的经济设计_Oop - Fatal编程技术网

Oop 面向对象的经济设计

Oop 面向对象的经济设计,oop,Oop,我不知道从哪里开始,所以我就要开始了。假设我试图用OOP来代表一个经济体。我提出的一个基本设计是: class Person{ int $money; // Money someone has in wallet/purse int $bank_account_id; function getAmountOfMoney() function addMoney($amountToAdd) function subtractMoney($amountToSubtract) }

我不知道从哪里开始,所以我就要开始了。假设我试图用OOP来代表一个经济体。我提出的一个基本设计是:

class Person{
  int $money; // Money someone has in wallet/purse
  int $bank_account_id;

  function getAmountOfMoney()
  function addMoney($amountToAdd)
  function subtractMoney($amountToSubtract)
}

class BankAccount{
  int $money; // Money in Bank Account
  int $interest_per_year;

  function giveInterest()
  function depositMoney() // Calls $person->subtractMoney()
  function withdrawMoney() // Calls $person->addMoney()

}

这里有什么设计缺陷吗?

我马上注意到的一件事是,一个人和一个银行账户不是一对一的关系。例如,储蓄和支票账户。或者有些人会有多家银行,或者我知道像我父母一样,在同一家银行有多个账户。我指的是将
$bank\u account\u id
存储在
Person

最好有一个数组,包含此人拥有的每个帐户

此外,如果您本人拥有该ID,您可能也应该将其保存在
银行账户中

depositMoney()
DrawitMoney()
类似,你让他们在
个人
上工作,而他们本应该自己工作,而
个人
访问
银行账户


基本上,这两个类之间的关系在某种程度上与表示现实生活(和实际)用法的方式相反。

我马上注意到的一件事是,一个人和一个银行账户不是一对一的关系。例如,储蓄和支票账户。或者有些人会有多家银行,或者我知道像我父母一样,在同一家银行有多个账户。我指的是将
$bank\u account\u id
存储在
Person

最好有一个数组,包含此人拥有的每个帐户

此外,如果您本人拥有该ID,您可能也应该将其保存在
银行账户中

depositMoney()
DrawitMoney()
类似,你让他们在
个人
上工作,而他们本应该自己工作,而
个人
访问
银行账户


基本上,这两个类之间的关系在某种程度上与表示现实生活(和实际)用法的方式有所不同。

看看你从什么开始,我建议你应该尽量让你的类只承担一项责任。值得思考的是,是银行账户负责计算利息吗?可能不会


如果你想学习OO开发的好原则,我建议你看看S.O.L.I.d:(+100的其他链接)

看看你从什么开始的,我建议你应该让你的班级承担一个单一的责任。值得思考的是,是银行账户负责计算利息吗?可能不会

如果你想学习OO开发的好原则,我建议你看看S.O.L.I.d:(+100的其他链接)