개발자
wpf에서 여러 cs끼리 서로 데이터를 호출하고 사용하는데, 다른 A.cs에서 B.cs의 함수를 이용할때 public static 정적 함수로 선언해서 불러오는데.. 어떤글에서 많이 사용하면 안좋다는 글을 본거같아서 질문드립니다!! 안좋다면 그 이유가 무엇이고 야기할 문제점들이 있을까요?
답변 1
' public static ' 메서드를 사용할 때 주의할 점이 있습니다. 과도한 사용은 코드의 응집도를 낮추고, 재사용성 및 테스트 용이성에 문제를 일으킬 수 있습니다. 그 이유와 야기할 수 있는 문제점들은 다음과 같습니다. 1. 글로벌 상태 관리의 문제: ' static ' 메서드는 클래스 인스턴스 없이 호출할 수 있습니다. 이로 인해 글로벌 상태 관리에 문제가 발생할 수 있으며, 여러 곳에서 접근하고 변경할 수 있는 상태를 만들어 버그가 발생하기 쉽게 됩니다. 2. 의존성 관리의 어려움: ' public static ' 메서드를 사용하면, 다른 클래스와의 의존성을 명확하게 관리하기 어려워집니다. 이로 인해, 코드 변경 시 다른 부분에 영향을 주기 쉽고, 코드를 이해하고 유지 보수하기 어려워집니다. 3. 테스트 용이성 저하: ' public static ' 메서드를 사용하면, 메서드가 클래스 인스턴스에 대한 의존성을 가지지 않기 때문에, 테스트할 때 모킹(mocking)이 어려워집니다. 이는 특히 단위 테스트를 작성할 때 문제가 될 수 있습니다. 4. 객체 지향 프로그래밍 원칙 위배: ' public static ' 메서드의 과도한 사용은 객체 지향 프로그래밍의 원칙을 위배합니다. 예를 들어, 다형성을 활용하기 어렵게 되고, 코드 재사용성이 저하될 수 있습니다. 이러한 문제점들을 피하기 위해, 다음과 같은 방법을 고려해볼 수 있습니다: - 인스턴스 메서드를 사용하고, 필요한 경우 클래스의 인스턴스를 주입하여 의존성을 관리합니다. 이를 통해 코드의 결합도를 낮추고 응집도를 높일 수 있습니다. - 인터페이스를 사용하여 다형성을 활용하고, 코드의 재사용성과 유연성을 높입니다. - 필요한 경우, 디자인 패턴(예: 싱글톤 패턴)을 사용하여 특정 클래스의 인스턴스를 전역적으로 관리합니다. 이를 통해, 글로벌 상태 관리의 문제를 해결할 수 있습니다. 결론적으로, public static 메서드를 사용하는 것이 항상 나쁜 것은 아닙니다. 하지만 과도한 사용은 코드의 유지 보수성과 테스트 용이성에 영향을 줄 수 있습니다.
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!