假设我有一个三个类的系统.在GameClass初始化时创建两个其他类的实例.
class FieldClass:
def __init__( self ):
return
def AnswerAQuestion( self ):
return 42
class PlayerClass:
def __init__( self ):
return
def DoMagicHere( self ):
# Access "AnswerAQuestion" located in the "FieldClass" instance in "GameClass"
pass
class GameClass:
def __init__( self ):
self.Field = FieldClass()
self.Player = PlayerClass()
Run Code Online (Sandbox Code Playgroud)
什么是访问的最好的方式AnswerAQuestion()位于FieldClass距离的实例中PlayerClass?
FieldClass实例的引用传递给PlayerClass?PlayerClass来保存FieldClass实例.我会使用依赖注入:GameClass使用required FieldClass和PlayerClass构造函数调用等实例化a (即,而不是GameClass像你现在那样从内部创建依赖对象).
class GameClass:
def __init__( self, fc, pc ):
self.Field = fc
self.Player = pc
class PlayerClass:
def __init__( self, fc ):
self.fc = fc
def DoMagicHere( self ):
# use self.fc
pass
fc=FieldClass()
pc=PlayerClass(fc)
gc=GameClass(fc, pc)
Run Code Online (Sandbox Code Playgroud)
使用DI,您可以在设置阶段完成后轻松访问所需的成员.
| 归档时间: |
|
| 查看次数: |
4909 次 |
| 最近记录: |