본문 바로가기
JAVA

3.29 피드백 후기+추가 공

by 쿠룽지 2024. 3. 31.
728x90
반응형

User 클래스의 특징:

  • 사용자 한 명의 정보를 나타냅니다 (id, name, region 등의 필드).
  • 문자열로부터 User 객체를 생성하는 생성자를 가지고 있습니다.
  • writeRegion, write, 그리고 더 범용적인 write 메서드를 통해 정보를 출력할 수 있습니다.
  • equals 메서드를 오버라이드해 주어진 객체가 같은 User인지 아이디를 통해 비교할 수 있습니다.
  • toString 메서드를 오버라이드해 객체를 문자열 형태로 표현할 수 있습니다.

UserList 클래스의 특징:

  • 사용자들의 목록을 관리합니다 (List<quiz6.new02.User> users).
  • 파일에서 사용자 정보를 읽어와 객체를 생성합니다 (ensureUsers() 메서드).
  • write, writeLocalOrder, writeAgeOrder, writeAgeOrder2 메서드를 통해 사용자 정보를 특정 기준에 따라 정렬하고 파일로 출력할 수 있는 기능을 제공합니다.

차이점:

  • UserList는 여러 User 객체를 관리하는 컬렉션으로서의 역할을 하고, 파일 I/O와 사용자 목록에 대한 정렬 및 출력을 담당합니다.
  • User는 단일 사용자의 데이터를 나타내고, 이를 기반으로 하는 간단한 입출력 기능을 가지고 있습니다.

클래스를 나누어 사용할 때의 장단점:

장점:

  • 단일 책임 원칙 (Single Responsibility Principle): 각 클래스는 고유의 역할과 책임을 가지므로, 코드의 유지보수가 용이하고 이해하기 쉽습니다.
  • 재사용성: User 클래스는 다른 프로젝트나 모듈에서 사용자 정보를 표현하는 데 그대로 사용할 수 있으며, UserList는 다른 종류의 객체 목록에도 유사한 형태로 적용될 수 있습니다.
  • 확장성: UserList 클래스는 다양한 타입의 사용자 리스트를 관리하기 위해 확장될 수 있고, User 클래스는 다른 속성이 추가될 경우 쉽게 확장할 수 있습니다.

단점:

  • 복잡성 증가: 클래스가 분리되면 각각의 클래스 간의 인터페이스를 관리해야 하므로, 코드의 복잡성이 증가할 수 있습니다.
  • 높은 결합도: UserList 클래스는 User 클래스에 의존하므로, User 클래스의 변경 사항이 UserList에 영향을 줄 수 있습니다.

전반적으로 클래스를 나누어 사용하는 것은 객체지향 프로그래밍에서 권장하는 설계 방식이며, 각각의 클래스가 명확한 역할을 가지고 서로 협력하는 방식으로 동작합니다. 이를 통해 코드의 가독성, 재사용성, 확장성을 높일 수 있지만, 클래스 간의 결합도와 복잡성을 관리하는 것이 중요합니다.

728x90
반응형

'JAVA' 카테고리의 다른 글

XML  (0) 2024.03.22