나는 종종 Java 또는 모든 종류의 언어에서 도우미 또는 유틸리티 클래스에 직면합니다. 그래서 나는 이것이 일종의 안티 패턴인지 여부를 묻고 있었고 이러한 종류의 클래스의 존재는 소프트웨어의 디자인과 아키텍처에서 누락이 부족한 것입니다.
이러한 클래스는 종종 정적 메소드를 사용하여 제한되며 많은 기능을 수행합니다. 그러나 대부분 상황에 따라 다르며 상태가 가득합니다.
내 질문은, 그런 종류의 정적 도우미 / 유틸리티 클래스에 대한 당신의 의견은 무엇입니까? 왜냐하면 장점은 클래스 이름 만 사용하는 빠른 호출이기 때문입니다.
그리고 어떤 종류의 추상화 수준에서 이런 종류의 클래스를 사용하지 않겠습니까?
제 생각에는 키워드 "정적"은 메소드 선언이 아닌 클래스 선언 (Java) 내에서만 허용되어야합니다. 내 의견으로는이 방법을 사용하면 Procuedural 및 OO-Paradigm을 Java로 결합하고 키워드의 오용을 피할 수있는 좋은 대안이 될 수 있습니다.
답변으로 인한 추가 사항 :
처음에는 다른 패러다임을 결합하고 심지어 기계 또는 vm 컴파일 된 코드 내에서 런타임 해석 스크립트 언어를 사용할 수있는 것이 합법적이라고 생각합니다.
필자의 경험은 프로젝트의 개발 과정에서 이러한 종류의 도우미 및 유틸리티 또는 이름이 무엇이든 원래 코드 모듈의 모든 잊혀진 구석 내에서 성장하고 성장하여 사용되고 있으며 원래 원래 모듈 식 및 flexibel로 설계되었습니다. 리팩토링을하지 않거나 디자인에 대해 다시 생각할 시간이 없기 때문에 시간이 지남에 따라 훨씬 더 나빠질 수 있습니다.
static
Java에서 제거해야 한다고 생각 합니다. 특히 더 정교한 기능적 언어 요소를 사용할 수있는 곳이 있습니다.