Property oder Methode?

10/07/2008 - 12:37 von Gustav Noris | Report spam
Hi zusammen,

ich habe folgende Klasse (Kurzform):

public class Inbox
{

private Inbox()
{
}

private ApplicationType CurrentAppType;

private Inbox(ApplicationType applicationType)
{
CurrentAppType = applicationType;
}

public static Inbox ABC()
{
return new Inbox(ApplicationType.ABC);
}

public static Inbox XYZ()
{
return new Inbox(ApplicationType.XYZ);
}

}

D.h. der Aufruf einer Methode dieser Klasse
erfolgt momentan via:

Inbox.ABC().GetIrgendwas();

Nun beschleicht mich aber das Gefühl, dass hier
eine Property die bessere Wahl wàre:

Inbox.ABC.GetIrgendwas();

Ich habe ne Weile gegoogelt, aber nirgendwo
eine schlüssige Begründung für da eine oder
das andere gefunden.

Spricht etwas dagegen den Weg über die Property
zu gehen?

Danke für alle Meinungen :-)

Gustav
 

Lesen sie die antworten

#1 Ilija Injac
10/07/2008 - 21:05 | Warnen spam
Hallo Gustav,

hier eine kleine Faustregel:

Properties speichern Werte für ein Objekt, und Methoden führen eine
bestimmte Operation für ein Objekt aus.
In Deinem Fall bietet sich auf jeden Fall ein Factory-Pattern an.

Hier ein einfach nachzuvollziehendes Beispiel:

http://blogs.microsoft.co.il/blogs/...ttern.aspx


Gruß,
Ilija





"Gustav Noris" schrieb im Newsbeitrag
news:%
Hi zusammen,

ich habe folgende Klasse (Kurzform):

public class Inbox
{

private Inbox()
{
}

private ApplicationType CurrentAppType;

private Inbox(ApplicationType applicationType)
{
CurrentAppType = applicationType;
}

public static Inbox ABC()
{
return new Inbox(ApplicationType.ABC);
}

public static Inbox XYZ()
{
return new Inbox(ApplicationType.XYZ);
}

}

D.h. der Aufruf einer Methode dieser Klasse
erfolgt momentan via:

Inbox.ABC().GetIrgendwas();

Nun beschleicht mich aber das Gefühl, dass hier
eine Property die bessere Wahl wàre:

Inbox.ABC.GetIrgendwas();

Ich habe ne Weile gegoogelt, aber nirgendwo
eine schlüssige Begründung für da eine oder
das andere gefunden.

Spricht etwas dagegen den Weg über die Property
zu gehen?

Danke für alle Meinungen :-)

Gustav

Ähnliche fragen