2010-04-17 3 views
0

어디서부터 시작해야할지 모르겠으므로 그냥 쟁기질을 할 것입니다. 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 BankAccount{ 
    int $money; // Money in Bank Account 
    int $interest_per_year; 

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

} 

여기에 디자인 결함이 있습니까?

답변

1

내가 알아 차린 한 가지 사실은 사람과 은행 계좌가 1 : 1 관계가 아니라는 것입니다. 예를 들어 저축 및 체킹 계좌. 또는 어떤 사람들은 여러 은행을 가지거나 부모님처럼 여러 은행 계좌를 알고 있습니다. Person$bank_account_id을 저장하는 것은 내가 언급 한 것입니다.

사람이 가진 모든 계정을 포함하는 배열을 갖는 것이 좋습니다.

또한 ID가 Person 인 경우 BankAccount에 입력해야합니다.

depositMoney()

비슷한 일 및 withdrawMoney(), 당신은 그들이 Person 주위 BankAccount이 아닌 다른 방법으로 접근하여, 스스로 작업을해야 할 때 그들이, Person 작업을해야합니다.

기본적으로 두 클래스 사이의 관계는 실제로 실제적인 (실용적인) 사용법을 표현하는 방법과 다소 차이가 있습니다.

2

당신이 시작한 것을 보면서 나는 당신이 수업을 단 하나의 책임으로 지켜야한다고 제안합니다. 생각을위한 음식은이자 계산에 대한 책임이있는 BankAccount입니까? 아마도 그렇지 않습니다. (+ 다른 링크 100의) http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod

을 :

당신은 내가 S.O.L.I.D보고 좋을 것 OO 개발에 좋은 원칙을 배우고 싶은 경우에

관련 문제