작성한 대부분의 프로그램은 시작 및 종료가 정의 된 비교적 흐름 상 가능한 프로세스입니다. 문제 자체는 복잡 할 수 있지만 객체 및 이벤트 중심 프로그래밍의 중앙 사용으로 쉽게 향하지 않습니다. 종종 나는 다양한 텍스트 데이터를 생성하기 위해 여러 가지 일괄 처리 된 텍스트 데이터를 간단히 채취하고 있습니다. 가끔씩 클래스를 만들어야합니다. 예를 들어, 경고, 오류 및 디버깅 메시지를 추적하기 위해 단일 인스턴스 디자인 패턴의 예가 될 하나의 인스턴스화 (myErr) 클래스 (Problems)를 만들었습니다 . 다른 요소로서, 제 동료들은 제가보다 오래된 학교 (절차 적)이며 객체 지향 프로그래밍에 익숙하지 않으므로 그들이 수수께끼를 풀 수없는 것을 만들지 않으려합니다.전역 변수 사용 최소화로 어려움을 설명하십시오.
그럼에도 불구하고, 전역 변수가 좋지 않기 때문에 싱글 톤 디자인 패턴조차도 실제로는 패턴이 아니며 피해야한다고 들었습니다.
사소한 기능은 전달할 인수가 거의 필요 없으며 구성 (변경되지 않음) 또는 프로그램 상태 (변경)를 알 필요가 없습니다. 동의합니다. 그러나 주로 프로그램 흐름을 제어하는 체인의 중간에있는 기능에는 많은 수의 구성 변수와 일부 프로그램 상태 변수가 필요합니다. 나는 함수에 따라 12 가지 이상의 주장을 전달하는 것이 "해결책"이라고 생각하지만, 매력적인 것은 아니다. 물론 변수를 단일 해시/딕트/연관 배열로 밀어 넣을 수는 있지만 그건 부정 행위처럼 보입니다.
예를 들어 Active Directory에 연결하여 새 계정을 만들려면 관리 사용자 이름, 암호, 대상 OU, 기본 그룹, 도메인 등의 구성 변수가 필요합니다. 이러한 인수를 전달해야합니다. 그것들을 사용하지 않는 다양한 기능을 통해, 실제로 그들을 필요로하는 기능으로 결국 이어질 체인을 통해 내려 버립니다.
적어도 구성 변수를 보호하기 위해 상수로 선언 하겠지만 요즘에는 (파이썬) 요즘의 선택 언어가 간단한 방법을 제공하지 않지만 조리법은 대안으로 존재합니다.
왜 스택 오버플로가 많이 발생 했나요? 악의와 필연적 인 가려움을 말하지만이 준 종교적 제한으로 생활하는 데 필요한 조언은 자주 언급하지 않습니다. 글로벌 변수와 프로그램 상태 문제를 어떻게 해결 했습니까? 아니면 최소한 평화롭게 만들었습니까? 어디서 타협 했니? 기능에 대한 논쟁의 무리를 누르는 것 외에 당신의 속임수는 무엇입니까?
좋은 질문 - 클래스 수준 변수 (구성원)를 전역 변수로 분류하고 있습니까? –