2016-08-12 6 views
2

Was die besten Praktiken betrifft, wo sollte ein Protokoll deklariert werden? innerhalb der zugehörigen Klasse oder in einer eigenen separaten Datei?Wo sollen Protokolle in swift deklariert werden?

Jeder Weg würde in der Theorie funktionieren, aber gibt es irgendwelche Gründe, in die eine oder andere Richtung zu steuern?

+0

Was meinen Sie mit "verwandte Klasse"? –

+0

gute Frage! Die Klasse, die danach ruft. z.B. 'someInstance.someDelegateMethod()' –

+0

Sie sprechen also gerade von einem _delegate_-Protokoll? –

Antwort

1

Ich folge einer Regel, das Delegate-Protokoll innerhalb der Datei der Klasse zu halten, die die delegate-Eigenschaft enthält.

Die folgende Codebeschreibung zeigt, wie das Protokoll mit der Eigenschaft beibehalten wird, in der der Delegat festgelegt wird.

MyClass.swift:

protocol MyDelegate: class { 
    func firstDelegateMethod() 
    func secondDelegateMethod() 
} 

class MyClass { 
    weak var delegate: MyDelegate? 
} 

Die Delegierten sind die Objekte, die dem Protokoll entsprechen müssen und werden von anderen Klassen definiert, nicht derjenige, der das Protokoll enthält.

Es ist hilfreich, daran zu denken, dass die Delegierten diejenigen sind, die die Arbeit machen. Sie tun, was von dem, was im Protokoll deklariert ist, benötigt wird.

Es kann verwirrend sein, diese Beziehungen zu verfolgen, da das Protokoll im Prinzip überall platziert werden kann. Wenn Sie ein Muster konsistent so folgen, wird es das Leben einfacher und Ihren Code überschaubarer machen.

+0

Danke für deine Antwort Daniel! Dies ist für mich sinnvoll, es sei denn, Sie verwenden dieses Protokoll an mehreren Stellen. In diesem Fall ist es sinnvoll, es in eine separate Klasse zu stellen. Vielen Dank!! –

+0

Froh, dass es @JulianB geholfen hat. Und ja, eine separate Klasse zu haben, ist eine gute Option, wenn man das Protokoll zwischen mehreren Klassen teilt. – Daniel

Verwandte Themen