2nd Box

13 Cards

関連、集約、コンポジット、依存、汎化、実現

☛ Reveal Answer

UML Class Draw

class Car:
    pass

class Engine:
    pass

# CaeクラスとEngineクラスは関連している
car = Car()
engine = Engine()
car.engine = engine

# 所持 (Aggregation)
class Computer:
    def __init__(self):
        self.cpu = CPU()

class CPU:
    pass

# ComputerクラスがCPUクラスを部分として所有
computer = Computer()
# Computerが破壊されると同時にcpuも破棄される

# 疎な依存(Dependency)
class ReportGenerator:
    def generate_report(self, data_source):
        pass

# ReportGeneratorクラスはDataFetcherクラスに依存している
class DataFetcher:
    pass

# 汎化(Generalization)
class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        return "Woof"

# DogクラスはAnimalクラスを汎化している

# 実現(Realization)
class Shape:
    def draw(self):
        pass

class Circle(Shape):
    def draw(self):
        pass

# CircleクラスはShapeクラスを実現している。