Solid 4

Dependency Inversion principle(의존성 주입 원칙)

소프트웨어 엔지니어링에서 의존성 주입(dependency injection)은 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉이다. "의존성"은 예를 들어 서비스로 사용할 수 있는 객체이다. 클라이언트가 어떤 서비스를 사용할 것인지 지정하는 대신, 클라이언트에게 무슨 서비스를 사용할 것인지를 말해주는 것이다. "주입"은 의존성(서비스)을 사용하려는 객체(클라이언트)로 전달하는 것을 의미한다. 서비스는 클라이언트 상태의 일부이다. 클라이언트가 서비스를 구축하거나 찾는 것을 허용하는 대신 클라이언트에게 서비스를 전달하는 것이 패턴의 기본 요건이다. class Cat: def speak(self): print("meow") class Dog: def speak(self): print("bark") #Zoo..

Dev./객체지향 2022.03.29

Interface segregation principle(인터페이스 분리 원칙)

인터페이스 분리 원칙은 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다.[1] 인터페이스 분리 원칙은 큰 덩어리의 인터페이스들을 구체적이고 작은 단위들로 분리시킴으로써 클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게 한다. 이와 같은 작은 단위들을 역할 인터페이스라고도 부른다. //Large Interface Interface ICarBoatInterface { void drive(); void turnLeft(); void turnRight(); void steer(); void steerLeft(); void steerRight(); } //Interface Segregation Principle //two small interfaces (Car, Boat) Interf..

Dev./객체지향 2022.03.29

Open-closed principle(개방-폐쇄 원칙)

개방-폐쇄 원칙(OCP, Open-Closed Principle)은 '소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다'는 프로그래밍 원칙이다. -> https://ko.wikipedia.org/wiki/%EA%B0%9C%EB%B0%A9-%ED%8F%90%EC%87%84_%EC%9B%90%EC%B9%99 개방-폐쇄 원칙 - 위키백과, 우리 모두의 백과사전 개방-폐쇄 원칙(OCP, Open-Closed Principle)은 '소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다'는 프로그래밍 원칙이다. 상세설명[편집] ko.wikipedia.org class Animal(): def _..

Dev./객체지향 2022.03.29

Single Responsibility(단일 책임 원칙)

SOLID 의 첫번째 원칙 Single Responsibility -> 단일 책임 원칙 class Diver: def __init__(self, age, career): self.age = age self.career = career def dive(self, sea): pass def move(self, site): pass # 다이버에 맞지 않는 함수 def print(self): print(f"age:{self.age} career:{self.career}") def log(self, logger): logger.log(f"age:{self.age} career:{self.career}") logger.log(datetime.now()) 한 클래스에 선언된 내용은 해당 클래스에만 관련있는 내용이어야..

Dev./객체지향 2022.03.29