반응형
Utility Class?
주로 특정한 목적을 위해 여러 메서드를 제공하는 클래스입니다.
이러한 클래스는 주로 정적(static) 메서드로만 구성되어 있으며,
인스턴스를 생성하지 않고도 직접 메서드를 호출할 수 있습니다.
특징
- 정적 메서드로만 구성되어 클래스의 인스턴스를 생성하지 않고도 직접 메서드를 호출할 수 있도록 합니다.
- 상태를 가지지 않고, 입력 값을 받아 결과를 반환하는 메서드들로 이루어집니다. 즉, 상태를 갖는 인스턴스 변수를 가지지 않습니다.
- 재사용 가능한 메서드들을 제공합니다. 유틸리티 클래스의 메서드들은 어떤 특정한 작업을 수행하는데 필요한 로직들을 캡슐화하고, 다양한 곳에서 재사용이 가능하도록 설계됩니다.
- 객체 생성이 필요 없습니다. 주로 객체 생성에 관련이 없거나 객체의 생성이 필요하지 않는 작업들에 사용됩니다.
- 일반적으로 final로 선언되어, 상속이 불가능하도록 만들어지고, 생성자가 private 으로 선언되어 객체의 인스턴스 생성을 막아, 단순하게 메서드들의 모음체로 사용되고, 객체 지향 프로그래밍에서의 클래스 상속과는 다른 목적으로 사용됩니다.
예시
자주 사용되는 수학 계산, 문자열 조작, 파일 조작 등과 관련된 메서드들을 제공하는 클래스
및 Spring에서 제공하는 StringUtils, CollectionUtils 와 같은 클래스
객체지향 프로그래밍(OOP)에서의 클래스 상속의 주요 목적
1. 코드 재사용(Reuse)
클래스 상속은 부모 클래스에서 정의된 특성(멤버 변수)과 동작(메서드)을 자식 클래스에서 재사용할 수 있게 합니다. 부모 클래스에서 이미 구현된 기능을 자식 클래스에서 중복 작성하지 않고 활용할 수 있는 장점이 있습니다.
2. 추상화(Abstraction)
클래스 상속을 통해 공통된 특성을 가진 클래스들을 추상화하여 일반적인 개념으로 표현할 수 있습니다.
추상화는 객체 지향 설계에서 중요한 원칙 중 하나로, 구체적인 세부사항을 감추고 중요한 부분만 강조함으로써 코드를 이해하기 편하게 만들 수 있습니다
3. 다형성(Polymorphism)
클래스 상속은 다형성을 지원합니다. 다형성은 동일한 인터페이스나 추상 클래스를 통해 서로 다른 구현을 제공할 수 있는 능력을 의미합니다. 이는 코드의 유연성을 향상시키고, 상속 관계에 있는 클래스들을 일반적으로 다룰 수 있게 합니다.
4. 유지보수성(Maintainability)
코드의 중복을 피하고 공통된 특성을 부모 클래스에 정의함으로써, 변경이 필요한 경우 부모 클래스의 수정만으로 여러 하위 클래스에게 영향을 미칠 수 있습니다. 이는 유지보수성을 향상시키고 코드를 더 쉽게 확장하고 변경할 수 있게합니다.
5. 확장성(Extensibility)
클래스 상속을 사용하면 새로운 클래스를 기존의 클래스에 기반하여 만들 수 있습니다. 새로운 클래스는 부모 클래스의 특성을 상속받아, 적절한 변경과 추가를 통해 새로운 기능을 갖게됩니다.
객체지향 프로그래밍(OOP)에서 클래스 상속의 주요 목적은 코드의 재사용과 추상화입니다.
클래스 상속을 통해 부모 클래스의 특성과 동작을 자식 클래스가 상속받아 재활용할 수 있으며, 이로써 코드의 중복을 줄이고 유지보수성을 향상시킬 수 있습니다.
반응형
'개발지식공간' 카테고리의 다른 글
CS | 메모리(Memory) 관리의 중요성 (0) | 2024.08.16 |
---|---|
암호화된 값을 URL 인코딩 시 주의할점 + Tip! (0) | 2024.02.29 |
Base64와 UTF-8의 차이점 (0) | 2024.02.29 |
Algorithm 알고리즘이란? (1) | 2024.01.31 |
삭제한 Git stash 복구하기 (SourceTree 및 기타 툴에서도 가능한 방법) (1) | 2024.01.31 |