Programming17 SOLID 원칙 (1) SOLD 원칙 Goal 단일 책임 원칙에 대해서 이해할 수 있다. 개방-폐쇄 원칙에 대해서 이해할 수 있다 1. 단일 책임 원칙 소프트웨어 설계 첫 번째 원칙으로 SRP(Single Responsibility Principle)라는 단일 책임 원칙이 있다. 문자 그래도 단 하나의 책임을 가지는 것이다. SRP에서 기본 단위는 객체를 지칭한다. 즉, 개체는 하나의 책임을 가져야 한다는 의미이다. "책임"이란 여러 관점에서 해석될 수 있지만 보통 '해야 하는 것'과 '할 수 있는 것'으로 간주할 수 있다. 예를 들어 학생(Student) 클래스에는 수강과목 조회, 추가를 하거나 학생 정보를 저장, 출력을 하거나 학생 성적표, 출석표를 출력할 수 있는 기능이 있다. 현재 Student 클래스는 단일 책임 원칙.. 2021. 5. 11. 객체지향의 원리 - 캡슐화 객체지향의 원리 Goal 캡슐화에 대해서 이해할 수 있다 캡슐화란? "객체의 속성(data fields)과 행위(메서드)를 하나로 묶고 실제 구현 내용 일부를 외부에 감추어 은닉한다." 객체의 속성과 행위를 하나로 묶는다는 것은 클래스의 개념과 비슷하지만 구현 내용의 일부를 외부에 감추어 은닉한다는 것은 캡슐화의 핵심이다. 따라서 객체에 접근하기 위해서는 객체가 정해놓은 메서드나 필드를 통해서만 접근이 가능하다. 소프트웨어 공학에서 요구사항 변경에 대처하는 고전적인 설계 방식으로는 응집도(cohesion)와 결합도(coupling)가 있다. 응집도 : 클래스나 모듈 안의 요소들이 얼마나 밀접하게 관련되어 있는지를 나타냄 결합도 : 어떤 기능을 수행할 때 다른 클래스나 모듈들에 얼마나 의존적인지를 나타냄 .. 2021. 5. 7. 객체지향의 원리 - 추상화 객체지향의 원리 Goal 추상화에 대해서 이해할 수 있다. 1. 추상화란? "추상화는 사물들의 공통된 특징, 즉 추상적 특징을 파악해 인식의 대상으로 삼는 행위다. 추상화가 가능한 개채들은 개체가 소유한 특성의 이름으로 하나의 집합을 이룬다. 그러므로 추상화한다는 것은 여러 개채들을 집합으로 파악한다는 것과 같다. 추상적 특성은 집합을 구성하는 개채들을 '일반화' 하는 것이므로 집합의 요소들에 보편적인 것이다." 커다란 운동장에 여러가지 다양한 수많은 자동차가 주차되어 있다고 가정하자. 이 자동차들을 그룹화할 때 추상화를 사용할 수 있다. 어떤 사람이 차의 배기량에 따라 차량을 구분하면 경차, 중형차, 대형차 등으로 구분할 수 있다. 따라서 구체적인 사물(자동차)들의 공통적인 특성(배기량)을 파악해서 이.. 2021. 5. 3. [디자인 패턴] 옵저버(Observer) 패턴 옵저버 패턴 (Observer Pattern) 한 객체의 상태가 변경되면 그 객체를 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(One - to - Many) 의존성을 정의 분산 이벤트 핸들링 시스템을 구현할 때 사용 Observer : 데이터의 변경을 통보받는 인터페이스 Subject : ConcreteObserver 객체를 관리하는 요소 ConcreteSubject : 변경 관리 대상이 되는 데이터가 있는 클래스. Subject의 Notify를 호출함으로써 ConcreteObserver 객체에 변경을 통보 ConcreteObserver : ConcreteSubject의 변경을 통보받는 클래스. Observer 인터페이스의 Update() 메서드를 구현함으로써 변경을 .. 2021. 4. 30. 이전 1 2 3 4 5 다음