[python] 파이썬에서의 클래스 상속을 활용한 디자인 패턴
파이썬은 클래스 상속을 통해 다양한 디자인 패턴을 구현할 수 있는 강력한 언어입니다. 이번 포스트에서는 파이썬에서의 클래스 상속을 활용한 몇 가지 디자인 패턴을 살펴보도록 하겠습니다.
목차
클래스 상속
파이썬에서 클래스 상속은 서브클래스가 슈퍼클래스의 특성과 기능을 상속받을 수 있게 해줍니다.
class Animal:
def speak(self):
print("Animal speaks")
class Dog(Animal):
def speak(self):
print("Woof")
팩토리 메서드 패턴
이 패턴은 객체 생성과정을 서브클래스로 분리하여 객체 생성 방법을 다양화하는 디자인 패턴입니다.
class FurnitureFactory:
def create_furniture(self, furniture_type):
pass
class ChairFactory(FurnitureFactory):
def create_furniture(self, furniture_type):
if furniture_type == "wooden":
return WoodenChair()
elif furniture_type == "plastic":
return PlasticChair()
스트래티지 패턴
스트래티지 패턴은 동일 계열의 알고리즘군을 정의하고, 각 알고리즘을 캡슐화하여 교체 가능하게 만드는 디자인 패턴입니다.
class SortStrategy:
def sort(self, data):
pass
class QuickSortStrategy(SortStrategy):
def sort(self, data):
return quick_sort(data)
class BubbleSortStrategy(SortStrategy):
def sort(self, data):
return bubble_sort(data)
파사드 패턴
파사드 패턴은 복잡한 서브시스템을 단순화된 인터페이스를 통해 쉽게 접근할 수 있도록 하는 디자인 패턴입니다.
class CPU:
def boot_up(self):
pass
class Memory:
def load(self):
pass
class HardDrive:
def read(self):
pass
class ComputerFacade:
def start(self):
self.cpu = CPU()
self.cpu.boot_up()
self.memory = Memory()
self.memory.load()
self.hard_drive = HardDrive()
self.hard_drive.read()
위와 같이 파이썬에서 클래스 상속을 활용하면 다양한 디자인 패턴을 구현할 수 있으며, 코드 재사용성과 유지보수성을 향상시킬 수 있습니다.
참고 자료
- 파이썬 공식 문서
- Head First Design Patterns, O’Reilly Media