객체지향 프로그램 제작 방법#1,2,3

박정훈·2022년 4월 18일
0

공부외

목록 보기
10/10

-상속, 인터페이스, 추상클래스
:클래스/객체, 상속, 캡슐화, 다형성
-만드는법, 주의사항
-객체지향 프로그램의 정의와 bad smell
-객체지향 프로그램의 5원칙
:SRP, OCP, LSP, ISP, DIP

cat extended Feline implement Pet.

상속, 인터페이스, 추상클래스
-상속은 클래스간의 변치않는 속성을 정리
-추상클래스는 상속중간의 클래스를 말함.
-인터페이스는 변하며, 임시적이지만, 몇몇 클래스가 공유하는 특성을 정리
->프로그램 구축 후에, 상속은 변할 수 없다. 당연히 추상 클래스도 불변!
->인터페이스는 필요에 따라 선언하고 수정할 수 있다.

클래스를 만드는 법
-만약 동시에 수행한다고 하나의 클래스로 묶었던 작업이 따로 수행해야 하는 경우가 자주 발생한다면 클래스로 묶는 것이 효과가 없다.
그러므로 클래스를 선언할 때는 향후 변화의 여지에 대한 충분한 고려가 있어야 한다.
-클래스로 묶는 작업들 중에서 일부만 다른 것으로 바뀌는 경우가 발생하는 경우에는 상속을 통해 이들의 선언을 효과적으로 수행할 수 있다.

객체지향 프로그램의 정의
bad smell
-경직성 : 무엇이든 하나를 바꿀 때마다 반드시 다른 것도 바꾸어야한다.
-fragile : 시스템에서 한 부분을 변경하면, 다른 부분에서 문제가 발생한다.
-부동성 : 시스템의 일부를 다른 시스템에서 사용하기 힘들다.
-끈끈함 : 소스수정-컴파일-테스트 순환을 한번 도는 시간이 길다.
-쓸데없는 복잡함 : 지금은 필요없고, 앞으로 필요할 것으로 예상되어 만든 기능이 많다.
-필요없는 반복 : 도일한 코드가 여러 곳에서 중복된다.
-불투명함 : 모듈의 명확한 기능이 없다

SRP(Single Responsibility Principle)
객체 지향 개발에 있어서, 시스템의 모든 클래스는 하나의 책임 또는 역할만을 가지며, 제공하는 모든 데이터와 메소드는 그 하나의 책임 또는 역할을 수행하는 데 집중되어 있어야 한다.

OCP(Open closed Principle)
클래스의 선언은 확장에는 열려있어야 하고, 변경에는 닫혀있어야 한다는 원리를 말한다. 예를들어 내가 작성중인 클래스에서 문자나 문자열을 화면에 나타내는 기능이 필요한 경우, 이것을 따로 클래스로 선언하여 사용하면 확장시에 문제가 된다.(=다른 사람의 클래스를 읽고 이해해야 한다.)
이 문제는 인터페이스를 이용하여 클래스를 처리하면 해결할 수 있다.

객체지향 프로그래밍 요령
-클래스를 잘 사용할 것
상속의 범위를 결정,
인터페이스, 추상클래스
-객체를 사용하는 경우를 이해할 것
잘못하면 새로 제작해야하는 경우가 발생
-클래스는 한 가지 역할만 할 것
-인터페이스를 이용하여 위임 구조를 활용할것
tip------------------------------------
-기본 클래스는 한 화면의 데이터와 메소드이다.
유사한 화면은 유사한 클래스를 생성하므로, 상속, 인터페이스, 추상클래스를 적용
위임구조를 염두에 둘 것

0개의 댓글

관련 채용 정보