2009-05-12 12 views
0

Wenn eine Methode ein Objekt erstellt und ich die Methode von einem anderen Objekt aus aufrufen, hat das letzte Objekt Zugriff auf die Eigenschaften und Methoden des ersten Objekts?eine Methode erstellt ein Objekt und ich rufe die Methode von einem anderen Objekt

+0

Jede Sprache speziell? –

+0

Boo hat recht, wenn ich dich richtig verstehe. Wir können jedoch möglicherweise eine klarere Antwort geben, wenn Sie einen Beispielcode angeben (und uns mitteilen, welche Sprache Sie verwenden). –

+0

Ihr Kommentar zu meiner Antwort weist darauf hin, dass Sie MVC verwenden - ist das ASP.NET MVC oder ein anderer Geschmack? – BenAlabaster

Antwort

0

Wenn es irgendwo zurückgegeben/gespeichert wird, sind öffentliche Felder und Methoden zugänglich.

1

Da sind einige Informationen, die Sie verwirren könnten.

Die Methode und das Objekt (in diesem Fall) sind voneinander getrennt. Die Frage wird also: Speichern Sie das erstellte Objekt in einem Bereich, auf den das zweite Objekt zugreifen kann?

0

Bearbeiten: Angesichts der Änderung der Tags ist diese Antwort nicht mehr relevant. Ich habe es verlassen die Kommentare zu bewahren ...

Ursprüngliche Antwort:

Like this ?:

public MyObject CreateObject() 
{ 
    return new MyObject() { FirstProperty = "Hello World" }; 
} 

public Main() 
{ 
    MyObject n = CreateObject(); 
    Console.WriteLine(n.FirstProperty); 
} 

Oder dieses ?:

class Program 
{ 
    MyObject _myObject; 

    public void CreateObject() 
    { 
     _myObject = new MyObject() { FirstProperty = "Hello World" }; 
    } 

    public Main() 
    { 
     Console.WriteLine(_myObject.FirstProperty); 
    } 
} 

In jedem In diesen beiden Fällen können Sie sicher auf Eigenschaften Ihres Objekts zugreifen. Wenn Sie das nicht so gemeint haben, weiß ich nicht genau, wie Sie Ihre Frage beantworten sollen.

+0

In Router, in einer Methode, in einer enthaltenen Datei ist der Controller-Code. Im Modell und in der Ansicht muss ich auf die Eigenschaften und Methoden des Controllers zugreifen. In Router möchte ich in einer anderen Methode ein Controller-Objekt an das Modell und die Ansicht zurückgeben. Was jetzt??? –

+0

Sie verwenden also ASP.NET MVC? – BenAlabaster

+0

Ich verstehe den CakePHP-Quellcode nicht, also musste ich um Hilfe bitten, ihn ständig zu konfigurieren. Plus wirklich fehlende soziale Fähigkeiten, die CakePHP Community hörte auf, mir zu helfen. Jetzt muss ich mit reinem PHP arbeiten. –

0

Nur wenn die Methode einen Verweis auf das Objekt behält, das erstellt wird.

1

In Router, in einer Methode, in einer enthaltenen Datei ist der Controller-Code. Im Modell und in der Ansicht muss ich auf auf die Eigenschaften des Controllers zugreifen und Methoden. In Router, in einer anderen Methode, möchte ich einen Controller Objekt an das Modell und die Ansicht zurückgeben. Was jetzt ??

Wenn ich die Frage richtig verstehe, sind Sie ein wenig verwirrt über MVC. Router-Klasse ist eine Kuchen interne Klasse und sollte niemals nie nie nie absolut nie geändert werden. Und diese "nie überhaupt" werden nicht einmal kopiert, sie sind wirklich getippt.

Zweitens, Modell Klassen wissen nicht einmal etwas Controller genannt. Controller verwendet Modelle, nicht umgekehrt. Wenn Ihr Modell etwas von einem Controller benötigt, übergeben Sie es als Parameter. Alles andere ist nur schlechtes Design.

Auch das Aufrufen von Controller-Aktionen aus einer Ansicht ist möglich, wird jedoch dringend davon abgeraten. Der Controller ist derjenige, der alle Daten für eine Ansicht vorbereitet, so dass View nicht auf den Controller zugreifen muss (es gibt Ausnahmen, die außerhalb des Bereichs dieser Frage liegen).

Ich empfehle Ihnen, lesen Sie ein wenig about MVC, cake's typical request, und gehen Sie zumindest durch die basic blog tutorial.

Verwandte Themen