나는 어리 석음으로 처음 추가 한 싱글 톤을 제거하는 가장 좋은 방법에 대해 생각하면서 머리를 긁적니다. 배경 지식으로이 애플리케이션은 주식 포트폴리오 추적자입니다.싱글 톤 클래스를 컨텍스트 유형으로 변환
- 가격
- 포트폴리오 (클래스 관리 포트폴리오의 모음 (클래스가 역사 가격, 배당금, 분할의 목록을 잡고) : 나는 현재 내가 유일한 인스턴스가 될 것이라고 생각 세 가지 클래스가 일부 유용한 래퍼 함수)
- 쿼리 개체 (읽고
사용자 요청을 충족하기 위해 여러 데이터베이스에서 열고 저장할 수있는 기능을 추가하고 있습니다. 각 데이터베이스 (쿼리 클래스)는 이론적으로 포트폴리오 및 가격 생성자로 전달되어 데이터를로드합니다.
내가 직면 한 문제는 모든 3 개의 클래스가 서로 연결되어 있다는 것입니다. C : \ database1.sqlite를 열면 C : \ database2.sqlite의 가격과 포트폴리오를 섞어서 비교할 수 없습니다. 또한 모든 편집 내용을 적절한 데이터베이스에 저장해야합니다.
필자의 초기 생각은이 클래스들로 구성된 컨텍스트 개체를 생성하고 이것을 전달하는 것이다. 그러나, Can you explain the Context design pattern?을 읽는 것, 이것이 올바른 해결책이라고 생각하지 않습니다.
싱글 톤을 제거하지만 개체간에 무결성을 유지하려면 어떻게해야합니까? 감사.
쿼리 레이어에 가격 또는 포트폴리오 클래스에 대한 연결이있는 경우 디자인에 심각한 문제가 있습니다. 아마 너무 늦었다는 것을 알고 있지만, Singleton 패턴의 사용에 관계없이 디자인에 근본적인 결함이있는 것 같습니다. – Serapth
이 "컨텍스트 패턴"이 무엇을 생각하든, 당신이 인용 한 질문의 링크는 죽었으며 패턴은 Google 검색에 표시 될 정도로 인기가 없습니다. 이상한 상호 의존성을 해결하고 나면 상위 수준에서 개체를 인스턴스화하고 개체가 필요한 모든 개체에 참조를 전달합니다. –
Serapth, 쿼리 레이어는 가격 클래스 또는 포트폴리오 클래스를 알지 못하지만 가격 및 포트폴리오 클래스는이를 사용하여 데이터베이스를로드하고 데이터베이스에 저장합니다. – Matt