일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬
- Eclipse
- Pattern
- lambda calculus
- tcp
- 스택
- 겨울카카오인턴
- 백준
- JDBC
- Java
- DesignPattern
- design-pattern
- 함수형 프로그래밍
- 큐
- javscript
- 자바
- 로버트마틴
- 프로그래머스
- Network
- Python
- Spring
- Collection
- 람다 칼큘러스
- Collections
- Rails
- solid
- 디자인패턴
- JavaScript
- exception
- functional programming
- Today
- Total
목록solid (4)
개발자 노트
INTRODUCTION 용어정리 client, user 특정 클래스나 객체를 사용하는 객체,함수,클래스 등 ISP란? Interface Segeregation Principle의 약자로, 인터페이스를 분리해야한다는 원칙입니다. 문제점 이 원칙이 지켜지지 않았을 경우엔 뚱뚱한 인터페이스(또는 오염된 인터페이스)가 만들어집니다. 이 인터페이스는 대게 응집성이 좋지 않습니다. 다시말해 연관성이 떨어지는 함수가 한 인터페이스에 집중되어 있다는 뜻입니다. 목표 이 fat 인터페이스는 ISP에 따라 분리되어야 하는데, 이 인터페이스를 사용하는 클라이언트는 단일 클래스로 볼것이 아니라, 응집성있는 인터페이스인 추상화된 베이스 클래스를 알아야합니다. 앞으로 알아볼 내용 fat 또는 polluted의 단점 어떻게 이 인..
참고 자료 https://en.wikipedia.org/wiki/Liskov_substitution_principle (wiki liskov-substitution-principle) http://www.butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod (LSP article) https://en.wikipedia.org/wiki/Design_by_contract (wiki design_by_contract) Introduction 앞서 OCP의 핵심 메커니즘은 추상화와 다형성을 이용하는 것이였습니다. 바로 상속을 이용하여 abstract base class로부터의 derived class를 생성할 수 있었습니다. 그렇다면 어떤 디자인 규칙(rule)이 이러한 특수..
Open-Closed Principle 클래스, 모듈, 함수 등은 확장에 대해선 열려있어야 하고, 수정에 대해선 닫혀있어야 한다. - MEYER Bertrand(1988) Object-Oriented Software Construction 확장은 허용하고, 수정은 허용하면 안된다. 다시 말하자면, 클래스는 수정없이 확장 가능해야 한다. 원칙 구현 방법 방법은 두 가지가 있습니다. 두 방법은 일반화 방법을 사용하는 것이 공통적이나, 목표나 기술 그리고 결과에서 차이를 가집니다. 1. Meyer's open-closed principle 방법 상속을 통하여 구현하라. 설명 상속을 이용하면, 부모 클래스는 상속을 통하여 구현할 수 있으므로 open에 대해서는 개방적이고, 자식 클래스를 통해 부모 클래스..
단일 책임 원칙 출처 https://blog.cleancoder.com/uncle-bob/2014/05/08/SingleReponsibilityPrinciple.html 의문점 도대체 reason to change?는 뭘까? 사람들이 해석하는 reason to change 버그 픽스? 리팩토링? 핵심 reason to change 와 responsibility를 연관 짓는 것. 위 2가지 사항은 프로그래머의 책임 => 프로그램의 디자인이 누구에게 반응해줘야 하는가?! 예시 1.CEO CEO에게 보고하는 것은 C-Level결정임 (CFO, COO, CTO) 2.CFO finance 컨트롤하는 것에 책임 3.COO 회사를 운영하는데 책임 4.CTO 회사의 기술적인 개발에 책임이 있음 [java code] p..