リレーショナルプログラミング


依存関係-クラスAはクラスBを使用します。


:Bクラスのオブジェクト->Aクラスのメソッドパラメータ
=>メソッド(def)のみで使用
class A:
	...
    def do_something(self, b): 
    ...

構成-AクラスにBクラスがあります。(依存関係よりも保持時間が長いため)


:クラスBのオブジェクト->クラスAの属性値
=>初期ジェネレータ属性値None->setter
class A:
	def __init(self, ...):
    	self.__attr_b = None #처음에는 속성값을 None으로
    
    @attr_b.setter #위의 클래스B로 가지고온 속성값을 setter로
    def art_b(self, b):
    	self.__attr_b = b #매개변수 b는 B의 객체 -> 클래스 A의 attribute가 된다

含む-AクラスにはBクラスがあります。


:クラスBとして作成および保存されるオブジェクト->クラスAの属性値
=>作成者ステップから開始
class A:
	def __init__(self, ...):
    	self.__attr_b = B() #생성자에서 클래스B의 attribute를 갖는다.

一般化-BクラスはAクラスである。


:クラスAをデフォルトクラスとして指定してクラスBを定義します.
class A:
	...
class B(A):
	...