2016-06-14 3 views
5

이것은 꽤 간단한 질문이라고 생각합니다. 그러나 인터넷 검색으로 좋은 답변을 찾을 수없는 것 같습니다.하나의 객체에 대해서만 클래스 만들기

C++로 프로그래밍하는 동안 (초보자로서) 나는 종종 클래스를 사용하여 코드를 구성하려고합니다. 그러나 그 클래스에 대해 하나의 객체 만 필요로 할 때 클래스를 만들지 않는 이유가 있습니까? 객체 지향 프로그래밍에 대해 배웠을 때, 나는 클래스가 특정 오브젝트을 설명하는 방법이라는 것을 이해했습니다. 많은이 필요합니다.

나는 내 질문에 간단하게 추측한다. 하나의 객체 만이 클래스에 필요하다면 클래스를 만드는 것이 일반적인가?

+0

코드에서 사용하는 방법에 따라 다릅니다. 장면 뒤에서 숨기기가 쉬울 경우 수업에서 작업 한 다음 이동하십시오. 그렇지 않으면 OOP를 overthink하지 말고 극단적으로 사용하십시오. – Inisheer

+0

나는 그가 단지 한 번만 수업을 사용하는 것을 언급하고 있다고 생각한다. – Inisheer

+0

내가 코드/프로젝트 전체에서 사용하는 하나의 객체 만 만드는 클래스를 만들려고합니다. 제 경우에는 하나의 객체 만 생성 할지라도 객체를 실제로 "물리적으로"제한 할 필요는 없습니다. 하지만 싱글 톤 패턴이 내가 묻고있는 대답 인 것 같습니다. – remi000

답변

2

예 ... 여러 가지 이유로.

  1. 나중에 여러 인스턴스가 필요할 수 있으므로 나중에 재 작성해야 할 수도 있습니다.
  2. 여전히 모든 필요한 변수를 클래스 내에 캡슐화합니다.
  3. 싱글 톤 패턴 https://en.wikipedia.org/wiki/Singleton_pattern의 장점을 찾아보십시오. 스레드 안전은 이중 확인 잠금 패턴을 구현할 필요가 없습니다 하나
  4. 에 대한 구현하는 것이 더 쉽습니다 https://en.wikipedia.org/wiki/Double-checked_locking

IT 및 요구 않다면 C++ 싱글

Singleton& instance() 
{ 
    static Singleton s; 
    return s; 
} 

없음을 초기화 할 수있는 좋은 방법을 제공합니다 즉시 스레드 안전성이 보장됩니다.

2

해당 클래스에 하나의 객체 만 필요한 경우 클래스를 만드는 것이 일반적입니까?

예. 그 패턴이 있습니다. The Singleton Pattern이라고합니다.

주제에 대한 많은 질문과 답변이 있습니다. https://stackoverflow.com/search?q=%5Bc%2B%2B%5D+is%3Aq+singleton을 참조하십시오.

+0

고맙습니다. 예, 저는 Singleton Pattern을 보았습니다. 이것은 하나의 객체 만 가질 수 있도록 클래스를 제한하는 방법이라고 이해했습니다. 매우 구체적인 경우라고 생각했지만, 좀 더 자세히 읽어 보겠습니다. – remi000

+4

싱글 톤 패턴은 매우 논란의 여지가 있으므로 사용하기 전에 많이 읽으십시오. 나는 정상적인 클래스의 한 인스턴스만을 사용하여 어떤 문제도 보지 않는다. (캡슐화 ...) – SnoozeTime

3

클래스 개체를 한 번만 인스턴스화해야하는 경우에도 클래스 헤더 파일을 main에서 정의하지 않고 자체 변수 및 함수로 만드는 것이 좋습니다. 클래스를 생성하면 캡슐화의 개념이 강화되어 코드를보다 쉽게 ​​유지 보수 할 수 있습니다 (클래스를 재사용하거나 기능을 업데이트 할 수 있음). 또한 클래스를 만들면 형식을 일관되게 유지하고 코드를 다시 읽거나 프로그램을 들여다 볼 사람을 초대 할 때 코드를 읽기 쉽게 만듭니다.

+1

네, 기본적으로 이것을하고 싶은 이유는 크고 크고 커지면서 코드가 더 이해하기 쉽다고 느끼기 때문입니다. 비록 내가 유일하게 그것에 종사하고 있어도. 나는 어떤 의미에서 수업을 과도하게 사용하고 있었다는 느낌을 받았습니다. 하지만 고마워, 적어도 내가하고있는 일이 나쁜 생각이 아님을 분명히 해준다. – remi000

+0

당신은 환영합니다! 나 또한 초보자입니다! –

관련 문제