문제

나는 Java의 경제 시뮬레이터를 연구하고 있으며로드 블록을 달렸습니다. 나는있다 경제 벡터를 소유 한 클래스 상인. 모든 반복, 이코노미 클래스는 각각을 호출합니다 상인 ()를 업데이트하고 어떤 거래를하고 싶은지 결정합니다. update () 함수는 원하는 트랜잭션을 반환하여 부모의 큐에 추가됩니다. 경제 수업. 위의 모든 것을 올바르게 구현할 수 있었지만 여전히 각각이 필요합니다. 상인 그가 현재 얼마나 많은 거래를했는지 확인할 수 있습니다. 거래는 부모에게 저장되므로 경제 클래스, 코드를 어떻게 설계하여 상인 액세스 할 수 있습니다 경제 기능과 변수?

도움이 되었습니까?

해결책

상인 계급은 이코노미 클래스의 방법에 대한 액세스가 필요하기 때문에 올바른 방법은 경제의 사례를 트레이더 클래스에 "주입"하는 것입니다. 생성자와 함께 할 수 있습니다.

public Trader(Economy economy) {
    this.economy = economy;
}

또는 세터와 함께 :

public void setEconomy(Economy economy) {
        this.economy = economy;
    }

그러나 경제 계급을 올바르게 설계하려면 조심하십시오. 이코노미 클래스의 변수에 대한 액세스는 클래스의 방법으로만 제한되어야합니다. 외부에 액세스하려면 getters and setter를 정의하십시오. 내가 이해 한 바와 같이, 거래자는 경제에서만 정보를 추출해야합니다. 그들은 경제 상태를 수정하는 방법을 호출 할 수 없어야합니다. 이것은 당신의 디자인에 반영되어야합니다.

인터페이스 정의를 고려할 수도 있습니다.

interface IEconomy {
  List<Trade> getTrades(Trader trader);
}

그리고 이코노미 클래스에서 구현하십시오. 그런 다음 상인에게 경제를 주입하십시오. 이것은 거래자가 어떤 경제를 사용해야하는지 명백하게 만듭니다.

다른 팁

public class Trader {
    private Economy parent;
    ...
    public Trader(Economy parent, ...) {
        this.parent = parent;
    }
}

이제 상인은 부모 경제에 접근해야합니다.

또는:

public onUpdate(Economy parent) { ... }

당신이 원하는 경우.

방법 업데이트 에서 상인 클래스는 하나의 주장, 즉 경제 사용할 수있는 클래스 이것. 그 다음에, 경제 원하는 정보를 추출하는 데 필요한 방법을 제공 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top