2014-02-17 6 views
0

데이터를 만들고, 소유하고, 파괴 할 위치에 관한 질문이 있습니다. 데이터 자체는 무작위로 생성되거나 하드 드라이브에서 읽는 큰 숫자 표입니다. 이 데이터는 분석 대상이며 정확하게 분석되는 대상에 따라 원하는 래퍼를 구조화하여 원하는 기능을 캡슐화했습니다. 래퍼는 나중 단계에서 전환 할 수 있기 때문에 래퍼 생성자 내부에서 데이터를 만들고/읽지 않고 "main"함수에서 처리하도록 결정했습니다. 그러면 래퍼는 데이터의 포인터 만 봅니다. 첫 번째로, 이것은 일반적/좋은 생각입니까, 아니면 래퍼가 항상 랩핑하는 데이터의 자체 복사본을 소유해야합니까? 음, 다음으로 데이터 생성/분석 선택 등을보다 잘 탐색 할 수있는 "메뉴"클래스를 만들었으며 가장 쉬운 방법은 메뉴 클래스의 데이터 부분을 만드는 것입니다. 이것은 기분이 좋지 않습니다. 그래서 어디에 넣어야합니까? 그것은 메인 클래스에 있어야합니까?객체 지향 디자인 선택

나는 이것이 이해되기를 바랍니다. 그렇지 않다면, 나는 어떤 일이 일어나고 있는지 더 잘 요약 할 수 있습니다. 읽어 주셔서 감사합니다.

+0

데이터가 상당히 크므로 데이터를 읽고 적절한 구조 나 클래스에 저장하는 것이 좋습니다. 그런 다음 분석 객체에 포인터 나 참조를 통해 데이터에 대한 액세스 권한을 부여 할 수 있습니다. ** 데이터가 저장되는 곳은 ** 메뉴가 옳지 않은 것처럼 보입니다 - 메인 클래스에 어떤 문제가 있습니까? –

+0

더러워진 것처럼 보였으 나, 회고 적으로 명백한 데이터를 생성하면 정확하게 처리해야합니다. 다시 쓰지 않아도된다는 말을 듣고 기쁩니다. – Arne

답변

1

data 클래스를 만들고 그 주위에 다른 클래스를 래핑 할 수 있습니다. 데이터 클래스의 객체는 전역이거나 main 내부에 정의되어 있어야합니다. OTher보다 - 당신의 아이디어는 좋아 보인다. data 클래스가 정의되면 포인터/참조를 메뉴에 전달할 수 있으므로 문제가 발생하지 않습니다. 원하는 경우 메뉴는 래퍼가 될 수 있습니다.

+0

안심 감사드립니다. 이제는 모두 상속 된 래퍼 기본 클래스를 만들었으므로 기본 데이터를 유지하고 메뉴의 인터페이스로 baseclass를 사용하여 래퍼를 처리합니다. – Arne

1

일반적으로 데이터의 세부 정보를 특정 래퍼 클래스에 보관하는 것이 좋습니다 (파생 클래스라고 생각합니까?). 래퍼 클래스는 인터페이스 또는 추상 형식에서 파생되어야합니다. main()에서 래퍼 클래스 팩터 리를 구성하고 팩토리를 생성자 (main()에서 인스턴스화 된 클래스의 생성자)로 전달할 수 있습니다. 나중에 데이터 관련 랩퍼를 켜거나 작성해야 할 경우 팩토리 메소드를 호출하십시오. 팩토리는 포인터를 소유 할 수 있으므로 new() 및 delete()를 호출합니다. 독창적 인 원칙을 찾아보고 그들이 어떻게 당신을 인도하는지보십시오.

+0

나는 공장을 일찍 사용하는 것에 대해 생각해 봤지만 그것에 반기를 들고 결정을 내렸다. 상황이 너무 혼란 스럽다고 느낄 때, 아마도 그렇게 할 것입니다. 고맙습니다. – Arne

관련 문제