객체지향에 관련해서, 가볍게 내용을 정리하였습니다.
참고서적 : 스프링 입문을 위한, 자바 객체 지향의 원리와 이해 김종민 지음
객체지향.
말은 참 어려운데. 프로그래밍 하면서 사람이 인식하는 사물 또는 실체를 하나하나 조합해서 프로그래밍 하자는 패러다임입니다.
쉽게, 객체를 가지고 놀자 이겁니다.
객체지향언어에서는
클래스(Class) 객체(Object)가 존재합니다.
클래스는 추상화 및 분류
객체는 실제를 의미합니다.
예) 사람클래스 -> 원빈 객체 / 동물 클래스 -> 고양이 객체
4대 특징
- 캡슐화
- 상속
- 추상화
- 다형성
객체지향 개념을 완벽히 이해하려면. 많이 공부해야 할거같습니다..ㅠㅠ
객체지향에 관련해서, 가볍게 내용을 정리하였습니다.
참고서적 : 스프링 입문을 위한, 자바 객체 지향의 원리와 이해 김종민 지음
객체지향.
말은 참 어려운데. 프로그래밍 하면서 사람이 인식하는 사물 또는 실체를 하나하나 조합해서 프로그래밍 하자는 패러다임입니다.
쉽게, 객체를 가지고 놀자 이겁니다.
객체지향언어에서는
클래스(Class) 객체(Object)가 존재합니다.
클래스는 추상화 및 분류
객체는 실제를 의미합니다.
예) 사람클래스 -> 원빈 객체 / 동물 클래스 -> 고양이 객체
4대 특징
- 캡슐화
- 상속
- 추상화
- 다형성
객체지향 개념을 완벽히 이해하려면. 많이 공부해야 할거같습니다..ㅠㅠ
안녕하세요 주니어 게임 개발자 노대영입니다.
유니티 개발자를 위한 언리얼 페이지를 공부해서 정리했습니다.
자세한 내용은 아래 공식 홈페이지를 확인하세요!
http://api.unrealengine.com/KOR/GettingStarted/FromUnity/index.html
4. 객체지향 디자인 원칙 (Solid)
• S - SRP(Single responsibility principle) 단일 책임 원칙
• O - OCP(Open Closed Principle) 개방 - 폐쇄 원칙
• L - LSP(Liskov Substitusion Principle) 리스코프 치환 법칙
• I - ISP(Interface Segregation Principle) 인터페이스 분리 원
칙
• D - DIP(Dependency Inversion Principle) 의존성 역전 법칙
5. 객체지향 디자인 원칙 (Solid)
• S - SRP(Single responsibility principle) 단일 책임 원칙
• 객체에 단 하나의 책임만을 가져야한다.
• 객체에 많은 기능과 책임을 정의하면 변경 시 많은 부분
을
변경할 수도 있고, 의도치 않은 곳에 오류가 생기기 쉽다.
• 응집도가 높은 클래스를 만들어야한다.
6. 객체지향 디자인 원칙 (Solid)
• O - OCP(Open Closed Principle) 개방 - 폐쇄 원칙
• 기존의 코드를 변경하지 않으면서 기능을 추가 할 수 있
도록
설계 되어야한다.
• 모듈은 추상화 된 클래스의 의존하여, 가능한 동작을 수
행하게
설계 해야함.
7. 객체지향 디자인 원칙 (Solid)
• L - LSP(Liskov Substitusion Principle) 리스코프 치환 법칙
• 파생 클래스는 부모 클래스의 가능한 행위는 수행할 수
있어야
한다.
• 부모 클래스에 의해 파생 클래스의 행동이 추상화 되어,
소스코드에 존재할텐데 추상화 된 내용을 수행을 못 하
면
부모 클래스에서 상속 받는 메소드들이 잘못 설계가 되
어진것
8. 객체지향 디자인 원칙 (Solid)
• I - ISP(Interface Segregation Principle) 인터페이스 분리 원
칙
• 클라이언트 자신이 이용하지 않는 기능에는 영향을 받지
않아야
한다.
• 큰 덩어리의 인터페이스가 아닌 작은 인터페이스로 분리
하여
의존성을 약화 시켜 유연한 구조로 설계한다.
9. 객체지향 디자인 원칙 (Solid)
• D - DIP(Dependency Inversion Principle) 의존성 역전 법칙
• 변화가 없는 것에 의존 하라. 고수준 요소가 저수준 요소
의
추상 클래스에 의존하게 설계 해야함.
• 고수준 요소가 저수준의 구상 클래스에 의존하게 되면
고수준 요소가 저수준의 요소에 의존하게 된다.
• 의존성 역전은 전통적 방식에 하이레벨에서 로우레벨을
의존하는 방식을 역전 시켜 설계하는 것을 지향.
10. 디자인 패턴 소스코드
• 해당 디자인 패턴 소스코드는 Git에 업로드 했습니다.
https://github.com/PAndy92/StudyOfProgramming
• Java -> C#으로 작성한 코드입니다.
• 문의는 ndy192@gmail.com 이나 코멘트
달아주시면 감사하겠습니다.
31. 4. Factory Method Pattern
팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데,
어떤 클래스의 인스턴스를 만들어지는 서브클래스에서 결정하게 만듭니다.
팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡김.
32. 4. Factory Method Pattern
피자 타이쿤 게임을 만들어 봅시다.
가게 마다 제조할 수 있는 피자는
달라질 수 있어요.
33. 4. Factory Method Pattern
피자의 종류는
계속 추가, 변경 될 수
있습니다.
피자
치즈
피자
불고기
피자
야채
피자
34. 4. Factory Method Pattern
피자 가게 종류 마다
다른 피자 조제법이 필요합니다.
A피자
치즈
피자
불고기
피자
야채
피자
B피자
소시지
피자
고구마
피자
치킨
피자
42. 7. Templete Method Pattern
메소드에서 알고리즘의 골격을 정의합니다.
알고리즘의 여러 단계 중 일부는 서브클래스에서 구현할 수 있습니다.
템플릿 메소드를 이용하면 알고리즘의 구조를 그대로 유지하며
서브클래스에서 특정 단계를 재정의 할 수 있습니다.