일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MariaDB
- JPA
- jdk11
- 팀프로젝트
- 코딩테스트
- javascript
- gradle
- IntelliJ
- Java
- 입출력
- React
- 자바
- ps
- Project
- 공유DB
- spring boot
- 백준
- SpringBoot
- JDK
- 스프링
- spring
- 프로젝트
- 디자인패턴
- Controller
- 자취
- 코테
- MVC
- AWS
- 취준생
- coding test
- Today
- Total
목록디자인패턴 (2)
Tech Collection
스트래티지 패턴 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. public interface FlyBehavior { public void fly(); } public class FlyWithWings implements FlyBehavior { public void fly() { System.out.println("날고 있어요!"); } } public interface QuackBehavior { public void quack(); } public class Quack implements QuackBehavior { public void quack() { System.out.p..
재사용성, 확장성, 관리의 용이성을 갖추어야 한다. 대부분의 패턴은 시스템의 일부분을 나머지 부분과 무관하게 변경하는 방법을 제공한다. 패턴은 다른 개발자들과의 의사소통의 가치를 극대화 시킬 수 있는 전문 용어 역할을 한다. 디자인 원칙 상속보다는 구성을 활용한다. 바뀌는 부분은 캡슐화 한다. 구현이 아닌 인터페이스에 맞춰서 프로그래밍 한다. 서로 상호작용을 하는 객체 사이에는 가능하면 느슨하게 결합하는 디자인을 사용해야 한다. 느슨한 결합을 이용하는 디자인이 훨씬 더 유연하고 변화에 강하다. 클래스는 확장에 대해서는 열려있지만 변경에 대해서는 닫혀 있어야 한다. (OCP) 시스템을 디자인할 때는 닫혀있는 부분이 새로 확장되는 부분하고 확실하게 구분되도록 노력합시다. 추상화된 것에 의존하라, 구상 클래스..