Oop 面向对象的经济设计
我不知道从哪里开始,所以我就要开始了。假设我试图用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) }
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的其他链接)