현재 인턴쉽에 4 개월이 걸리고 코드를 검토 할 때 상사는 특정 어셈블리를 여러 어셈블리에 걸쳐 여러 어셈블리에 로컬로 유지하는 것을 좋아하지 않았습니다. 그는 매번 새로운 객체를 생성하는 것을 좋아하지 않고 대신 어디서나 액세스 할 수있는 단일 객체를 생성하라고 말했습니다. 따라서 정적 클래스 내에서 정적 객체로 생성해야했으며 여기에서 단순히 참조하고 싶습니다.
내가 4 개월 동안 전문적으로 프로그래밍 한 경험이 있다면 어떻게 처리하겠습니까?
답변
하나의 개체로 충분하면 매번 개체를 만드는 것이 낭비이며 여기에서 상사가 옳을 수 있습니다.
문제는 해당 개체에 대한 적절한 액세스입니다. 적절한 가시성을 가진 팩토리와 같은 방법으로 정적 객체가 떠오른 첫 번째 솔루션이라는 것을 항상 돌려줍니다. 다른 사람들도 분명히 존재합니다.
답변
나는 특정 사건을 언급하지만, 전역 변수를 사용하여 할 수 있다 때로는 좋은 솔루션입니다. Java의 시스템 클래스는 정적 전역 변수로 가득합니다.
그러나 일반적으로 자신이 옳고 상사가 틀렸다고 생각하면 상사에게 왜 전역 변수가 더 나은 해결책이라고 생각 하는지 설명해 보지 않겠습니까? 평범한 “나는 그것을 좋아하지 않는다”는 “글로벌 변수는 악하다”와 같이 모호하다. 당신은 상사에게 더 많은 것을 요구해야합니다!
그가 자신의 입장에 대한 이유를 제시 할 수없고 자신의 입장에 이유를 제시 할 수 있거나 그 반대의 경우도 마찬가지입니다. 두 사람 모두 자신의 입장을 정당화 할 수 있다면 아마도 맛이나 경험의 문제 일 것입니다. 상사는 4 개월 이상 전문적으로 프로그래밍 했어야한다고 생각합니까?
답변
당신의 위치에있는 누군가로서, 당신이 할 수있는 가장 많은 것은 배우는 것입니다. 객체가 본질적으로 일정한 경우 (즉, 변경할 수없고 상태를 유지할 수없는 경우), 보스가 옳을 수 있습니다. 정적 상수 객체를 갖는 데 아무런 해가 없습니다. 결국 PI에 대한 정의는 몇 개입니까?
어떤 사람들은 “전세계적인 물건이 없다”는 사고 방식을 종교적 열의로 지적합니다. 그것은 두 가지 이유 중 하나입니다. 글로벌 변수 / 객체의 과다 사용으로 인해 버그 또는 시스템 취약성을 추적하기가 어려웠거나 그것이 나쁘고 스스로 생각할 수 없다는 것을 들었습니다. 나는 개인적으로 취약성에 의해 타격을 받고 버그를 추적하기 어려운 사람들 그룹에 빠지지만 여기서 균형을 배웠습니다.
내가 당신의 신발에 있다면, 나는 계속해서 보스가 말한 것을 행합니다. 결국 그의 엉덩이입니다. 그런 다음 시간이 지남에 따라 그 선택의 효과를보고 봤습니다. 이것은 효과적인 학습 도구입니다.
답변
특정 상황에 따라 전역 변수가 최상의 솔루션 일 수 있습니다. 임베디드 프로그래밍에서 글로벌은 스택 공간을 차지하지 않으므로 이러한 이유로 좋은 선택입니다.
전 세계에 상관없이 전 세계에 접두사를 붙이는 것이 좋습니다. 이렇게하면 다른 프로그래머가 코드를 혼란스럽게 할 때 영향을 인식하는 코드를 인터넷 검색 할 수 있습니다.
답변
아마도 상사가 원했던 것은 싱글 톤 패턴을 사용하는 것이었을 것입니다. 여러 인스턴스에서 특정 객체에 액세스해야 할 때 매우 좋습니다.
다음은 위키 백과 설명에 대한 링크입니다.