싱글 톤 패턴이나 정적 클래스 (즉 거의 정적 멤버 만 가진 클래스)의 구현을 발견 할 때마다 이것이 실제로 해킹이 아니며 따라서 클래스 및 인스턴스의 원칙을 심각하게 남용하지 않는지 궁금합니다. 클래스를 설계하고 단일 인스턴스를 생성하는 대신 단일 객체를 설계 할 수 있습니다. 나에게 클래스의 정적 멤버는 일반적으로 클래스에 어떤 종류의 특성을 추가하려고 시도합니다. 실제로는 클래스에 특성을 추가하려고합니다.정적 멤버가 클래스에 (글로벌) 객체를 일종의 클래스로 지정하지 않습니까?
하지만 단일 개체를 이와 같이 구현하는 것이 바람직합니까? 아니면 완전히 다른 방식으로 사물을 보았습니까? 그런 정적 클래스 나 싱글 톤이 실제 객체와 공통점이 있다고 생각하지 않습니까?
그러나 읽기 쉽고 유지하기 쉬운 코드를 얻기 위해 포인터를 전달하는 것이 더 좋지 않습니까? 사실 글로벌 변수와 다른 문제는 아직 다르게 포장되어 있습니다. 또한 http://misko.hevery.com/2008/08/17/singletons-are-pathological-liars/ – balu
을보십시오 이론에서는, 확실하십시오. 그러나이 기사의 예제에서도 "CreditCard"클래스 생성자를 6 명의 멤버로 분해했으며 이는 단순한 예일뿐입니다. 이데올로기에 충실하기 위해 10 개 이상의 매개 변수가있는 기능을 갖는 것은 좋은 생각이 아닙니다. – SoapBox
생성자를 통해 모든 종속성을 전달하는 것은 종속성 삽입을 수행하는 한 가지 방법 일뿐입니다. 또 다른 방법은 속성을 설정하는 것입니다. 또 다른 대안은 "서비스 탐지기"패턴입니다. 고전적인 기사 : http://www.martinfowler.com/articles/injection.html –