OOP3 객체 지향 프로그래밍 _ SOLID 단일 책임 원칙 모든 클래스는 단 한가지의 책임만을 갖고 클래스 안에 정의 되어있는 모든 기능은 하나의 책임을 수행하는데 집중되어있어야한다. ⇒ 하나의 클래스로 너무 많은 일을 하지 말고 딱 한가지 책임만 수행하자 god object: 너무 많은 책임을 지니고 있는 객체 한 클래스는 한가지 책임에 관한 변경사항이 생겼을때 코드를 수정할수있도록 하자 개방폐쇄 원칙 클래스는 확장에 열려있어야 하며 수정에는 닫혀있어야한다. ⇒ 기존 클래스의 코드를 수정하지 않고도 기능을 확장할 수 있어야한다. 리스코프 치환 원칙 부모클래스의 인스턴스를 사용하는 위치에 자식 클래스의 인스턴스를 대신 사용했을 때 코드가 원래 의도대로 작동해야 한다. 형식적인 측면 : 자식클래스가 오버라이딩하는 변수와 메소드가 부모클래스에 있는 .. 2024. 1. 21. 객체 지향 프로그래밍 (OOP) _ 상속 & 다형성 파이썬을 기반으로 작성되었습니다 상속 부모의 메소드와 변수를 그대로 받아 사용할수있다. 이를 활용하면 코드 중복을 줄일 수있다. 상속은 아래와 같이 가능하다. class Cashier(Employee): pass help 함수를 통해 calss를 자세히 볼 수있다. 파이썬에서 모든 class는 자동으로 Builtins.object Class를 상속받는다. mro 메소드 해당 인스턴스의 클래스가 어떤 부모 클래스를 가지는 지 보여준다. ⇒ 클래스가 상속받는 부모 클래스들이 순서대로 담긴 리스트를 리턴 들여쓰기 에러인 IndetationError를 출력하면 다음과 같이 나온다 print(IndentationError.mro()) [, , , , ] isinstance 함수 어떤 인스턴스가 주어진 클래스의 인.. 2024. 1. 17. 객체 지향 프로그래밍 (OOP) _ 추상화 & 캡슐화 파이썬을 기반으로 작성되었습니다. 추상화 프로그래머들이 특정코드를 사용할때 필수적인 정보를 제외한 세부사항을 가리는 것 추상화 팁 추상화를 할 때는 클래스 변수 메소드 이름을 잘 지어야한다. 추상화는 문서화를 잘해야한다. help(class)를 하면 Docstring 내용을 확인 할수있다. 타입 힌팅을 적어서 개발자들에게 어떤 타입을 사용하는지 알려준다. type hinting : 변수뒤에 “:” 을쓰고 타입을 작성한다. 함수는 “→” 을 쓰고 타입을 작성한다. 타입 힌팅은 작동하는데 문제는 없지만 개발자들에게 어떤 타입을 사용해야하는지 도움을 준다. 캡슐화 객체의 일부 구현 내용에 대한 외부로 부터의 직접적인 액세스를 차단하는 것 객체의 속성과 그것을 사용하는 행동을 하나로 묶는것 클래스에서 숨기고 싶.. 2024. 1. 16. 이전 1 다음