읽은 책 정리/스프링 입문을 위한 자바 객체지향 원리와 이해 4

스프링이 사랑한 디자인 패턴

* 어댑터 패턴 - 개방 폐쇄 원칙을 활용한 설계 패턴 합성,즉 객체를 속성으로 만들어서 참조하는 패턴 ( 호출 당하는 쪽의 메서드를 호출당하느쪽의 코드에 대응하도록, 중간에 변환기를 통해 호출하는패턴) * 프록시 패턴 - 실제 서비스 메서드의 반환값에 가감하는것을 목적으로 하지않고, 제어의 흐름을 변경하거나, 다른 로직을 수행하기 위해 사용한다. (제어 흐름을 조정하기 위한 목적으로 중간에 대리자를 두는 패턴) * 데코레이터 패턴 - 원본에 장식을 더하는 패턴( 클라이언트가 받는 반환값에 장식을 덧입힌다.) (메서드 호출의 반환값에 변화를 주기 위해 중간에 장식자를 두는 패턴) * 싱글톤 패턴 - 인스턴스 하나만 만들어 사용하기 위한 패턴 (오직 인스턴스를 하나만 만들고, 그것을 계속해서 재사용한다) ..

객체 지향 설계 5원칙 - SOLID

SOLID ( oop 객체 지향도구를 올바르게 사용하는 방법) - SRP( Single Responsibility) : 단일 책임 원칙 - OCP( Open Closed ) : 개방 폐쇄 원칙 - LSP ( Liskov Substitutability ) : 리스코프 치환원칙 - ISP ( Interface Segregation) : 인터페이스 분리원칙 - DIP ( Dependency Inuersion) : 의존 역전 원칙 좋은 소프트웨어 설계는 결합도는 낮추고, 응집도는 높인다.결합도가 낮으면 모듈간 상호의존성이 줄어 객체의 재사용이나, 수정, 유지보수 용이응집도가 높으면 하나의책임에 집중하고 독립성이 높아져, 재사용이나, 수정, 유지보수 용이 * SRP (어떤 클래스를 변경해야 하는 이유는 오직 하나..

자바가 확장한 객체지향

abstract 키워드 - 구현부가 없는 메서드 (객체 생성불가) - 추상메서드를 하나라도 갖고 있으면, 클래스를 반드시 추상클래스로 선언 - 추상메서드는 하위클래스에게 메서드 구현을 강제한다 // 오버라이딩 강제 생성자 - 개발자가 아무런 생성자를 만들지않으면 ,컴파일러가 자동구현 단, 생성자가 하나라도 있으면 컴파일러는 기본생성자를 만들어주지않음 final 키워드 - 클래스 (상속불가) - 메서드 (오버라이딩금지) - 변수 (한번할당하면, 변하지않는 상수값) instanceof - 만들어진 객체가 특정클래스의 인스턴스인지 확인하는연산자 - 객체 참조변수 instanceof 클래스명 - instanceof 연산자가 강력하기는 하지만 LSP(리스코프 치환원칙을 어기는 코트에서 주로나타는연산자이다 inte..

자바와 객체지향(OOP)

객체는 유일무이하게 존재하는 실체이기때문에 속성에 값을 갖고, 클래스는 개념이면서 분류체계일뿐 속성에 값을 가질수없다. 눈으로 보고,느끼고,생활하는 현실세계처럼 프로그래밍 할수없을까? 라는 고민속에서 객체지향 개념이 탄생됨. 눈을 보여지는것, 만져지는것, 상상되는 모든것은 사물(object)이다. (사물을 하나하나 이해하기보다는 사물을 분류(class)해서 이해하는것이 인간의 인지법이다.) 객체지향의 4대 특성 - 캡상추다 캡슐화 - 정보은닉 상속 - 재사용 추상화 - 모델링 다형성 - 사용편의 캡슐화 // 은닉화 - 관련이 있는, 변수와 함수를 하나의 클래스로 묶고, 외부에서 쉽게 접근하지 못하게 하는게 핵심 객체에 직접적인 접근을 막고 외부에서 내부의 정보에 직접접근하거나 변경할 수 없고, 객체가 제..