전체 글199 14. 일관성 있는 협력 14. 일관성 있는 협력태그비어 있음날짜2024년 5월 22일휴대폰 과금 시스템을 구현할 때 처음 예제는 일관성이 없어서 이해하기 어렵다유사한 기능은 유사한 방식으로 구현해야 한다. 협력을 일관성 있게 만들어야 한다.설계에 일관성 부여하기변하는 개념을 변하지 않는 개념으로부터 분리하라변하는 개념을 캡슐화 하라추상화를 찾아 추상화에 의존하도록 만드는 것조건에 따라 분기되는 어떤 로직들이 있다면 이 로직들이 바로 개별적인 변경이라고 볼 수 있다.클래스를 분리하면 유사한 행동을 하는 클래스들을 역할이라는 추상화로 묶을 수 있고 이는 설계를 일관성있게 유지시킬 수 있다.캡슐화 다시 살펴보기캡슐화는 데이터 은닉 이상이다.캡슐화는 변하는 어떤 것이든 감추는 것이다.캡슐화 종류데이터 캡슐화메서드 캡슐화객체 캡슐화서브.. 2025. 3. 17. 13. 서브클래싱과 서브타이핑 13. 서브클래싱과 서브타이핑태그비어 있음날짜2024년 5월 14일올바른 타입 계층을 구성하는 원칙을 살펴보자🏁 타입객체의 타입이란 객체가 수신할 수 있는 메시지의 종류를 정의하는 것이다.⇒ 퍼블릭 인터페이스 🏁 타입 계층타입 계층을 구성하는 두 타입 간의 관계에서 더 일반적인 타입을 슈퍼타입, 더 특수한 타입을 서브타입이라고 부른다.🏁 서브클래싱과 서브타이핑언제 상속을 사용해야 하는가?상속 관계가 is-a관계를 모델링하는가?is-a로 연결해 문장을 만들어도 어색하지 않은 단어로 타입의 이름을 정하라 클라이언트 입장에서 부모 클래스의 타입으로 자식 클래스를 사용해도 무방한가?행동의 호환 여부를 판단하는 기준은 클라이언트의 관점이다.인터페이스를 클라이언트의 기대에 따라 분리함으로써 변경에 의해 영향을.. 2025. 3. 17. 12. 다형성 12. 다형성태그비어 있음날짜2024년 5월 14일단순히 코드를 재사용하기 위해서라면 상속을 사용하지 말아야 한다.✅ 다형성여러 타입을 대상으로 동작할 수 있는 코드를 작성할 수 있는 방법✅ 상속의 양면성상속은 다형성을 가능하게 하는 타입 계층을 구축하기 위한 것이다.데이터 관점의 상속자식 클래스의 인스턴스는 자동으로 부모 클래스에서 정의한 모든 인스턴스 변수를 내부에 포함하게 되는 것행동 관점의 상속메시지를 수신한 객체는 자신의 클래스에 메서드가 존재하지 않으면 parent포인터를 따라 부모 클래스를 차례대로 훑어가면서 적절한 메서드가 존재하는지를 검색한다. ✅ 업캐스팅과 동적 바인딩업캐스팅 : 부모 클래스 타입으로 선언된 변수에 자식 클래스의 인스턴스를 할당하는 것동적 바인딩 : 선언된 변수의 타입이.. 2025. 3. 17. 11. 합성과 유연한 설계 11. 합성과 유연한 설계태그비어 있음날짜2024년 5월 5일서브클래싱에 의한 재사용을 화이트박스 재사용합성할 객체들의 인터페이스에 의한 재사용을 블랙박스 재사용이라고 한다.🏁 상속을 합성으로 변경하기10장 상속에서 불필요한 인터페이스 상속 문제 예시에서 봤던 Stack코드를 합성을 사용하면 이렇게 변경할 수 있다.Java복사public class StackE> { private VectorE> elements = new Vector>(); public E push(E item) { elements.add(item); return item; } public E pop() { if(elements.isEmpty()) { throw new EmptyStackExcep.. 2025. 3. 17. 이전 1 ··· 6 7 8 9 10 11 12 ··· 50 다음