클래스

    추상 클래스(Abstract Class)

    📙 1. 추상클래스란? public abstract class Player { abstract void play(); abstract void stop(); } 클래스를 설계도라고 한다면, 추상클래스(Abstract Class)는 미완성 설계도라고 할 수 있다. 여기서 말하는 미완성은 단지 미완성 메서드(추상 메서드)를 포함하고 있다는 의미이다. 미완성 설계도로 완성된 제품을 만들 수 없듯이 추상 클래스로 인스턴스를 생성할 수 없다. 추상 클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 추상 클래스 자체로는 클래스로서의 역할을 다 못하지만, 새로운 클래스를 작성하는 데 있어서 바탕이 되는 조상 클래스로서 중요한 의미를 갖는다. 추상 클래스는 클래스에 추상화를 접목시켜 보다 구조적이게 객체를..

    클래스와 멤버의 접근 권한을 최소화하라 - [4장. 클래스와 인터페이스(아이템15)]

    이번 글을 통해 '정보 은닉의 장점'과 '클래스와 인터페이스', '멤버(필드, 메서드, 중첩 클래스, 인터페이스)'의 접근 제한자 원칙에 대해서 알아보자. 1. 정보 은닉의 장점 🎸 정보 은닉의 장점은 정말 많은데 그중 대부분은 구현과 API를 분리시켜서 얻는 이점과 연관되어 있다. 정보 은닉의 장점은 아래와 같다. 시스템 개발 속도를 높인다. 여러 컴포넌트를 병렬로 개발할 수 있기 때문이다. 시스템 관리 비용을 낮춘다. 각 컴포넌트를 더 빨리 파악하여 디버깅할 수 있고, 다른 컴포넌트로 교체하는 부담도 적기 때문이다. 정보 은닉 자체가 성능을 높여주지는 않지만, 성능 최적화에 도움을 준다. 완성된 시스템을 프로파일링해 최적화할 컴포넌트를 정한 다음, 다른 컴포넌트에 영향을 주지 않고 해당 컴포넌트만 최..

    클린 코드(Clean Code) - 10장

    10장. 클래스 🏠 지금까지 코드 행과 코드 블록을 올바로 작성하는 방법에 초점을 맞췄다. 함수를 올바로 구현하는 방법과 함수가 서로 관련을 맺는 방식도 공부했다. 하지만 코드의 표현력과 그 코드로 이루어진 함수에 아무리 신경 쓸지라도 좀 더 차원 높은 단계까지 신경 쓰지 않으면 깨끗한 코드를 얻기는 어렵다. 이 장에서는 깨끗한 클래스를 다룬다. 클래스는 작아야 한다! 얼마나 작아야 하는가? 함수는 물리적인 행 수로 크기를 측정했다. 클래스는 맡은 책임으로 측정을 한다. 단일 책임 원칙 (Single Responsibility Priciple) SRP는 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙이다. 이는 '책임'이라는 개념을 정의하며 적절한 클래스 크기를 제시한다. public ..