Die Ausweitung geerbt Funktionen und Eigenschaften

Wir haben so viel über die Theorie der Vererbung ColdFusion-Komponente, und ehrlich gesagt, ein Großteil davon ist stark übertrieben. Vererbung teilt seinen Namen mit der objektorientierten Welt, aber mehr auch nicht, dass es Aktien. CFC Vererbung lassen sich leicht zusammenfassen mit den folgenden drei einfachen Anweisungen:

  

Eine Komponente kann erben von einem anderen oder zu erweitern, nach der die Erben Komponente kann Verwendung von Eigenschaften ihrer Vorfahren und Methoden zu machen.

Wenn die Erben Komponente erklärt, seine eigenen Methoden, anders als die in ihrer Vorfahren benannt, sowohl die Vorfahren Methoden und die Vererbung Komponente Methoden können durch die Erben Komponente aufgerufen werden. Das gleiche gilt für die Erklärung der Eigenschaften mithilfe von Namen, die nicht übereinstimmen ihrer Vorfahren.

Wenn die Erben Komponente ihren eigenen Methoden erklärt, den gleichen Namen wie die in seinem Urahnen, dem Erben Komponente Methoden überschreiben die Vorfahren Methoden mit dem gleichen Namen, als ob die Vorfahren Methoden verborgen sind. Das gleiche gilt für die Erklärung der Eigenschaften mithilfe von Namen, die ihre Vorfahren. Nur diese drei Prinzipien im Auge behalten, wie Sie durch die folgenden Teile gehen und glaube nicht, dass Vererbung ist komplizierter als dieses Spiel. Vererbung hat ein paar Anwendungen in der realen Welt ColdFusion Entwicklung, aber du bist wahrscheinlich feststellen, dass sie selten sind. Dennoch sollten Sie die Vererbung zu verstehen, so dass Sie Orte in der Anwendung, wo es gerechtfertigt sein kann vor Ort.

Sie können das Paket, die Sie in die Codes verwenden, um über eine Verlängerung Komponenten zu lernen. Obwohl wir es nicht früher zu diskutieren, haben wir eine Eigenschaft in der Emp-Komponente namens empProperty, wie folgt:

Erstellen einer Variable in der Dieser Umfang der Emp-Komponente ermöglicht die Variable eine Eigenschaft dieser Komponente Remember. Dass der gesamte Code der Initialisierung einer Komponente Gebiet einst als eine Instanz der Komponente ausgeführt wird, zum ersten Mal erstellt, was bedeutet, dass die empProperty Eigenschaft automatisch erstellt und an den Original-Wert Emp als jede Instanz der Emp-Komponente initialisiert wird erstellt. Sie können den Wert der This.empProperty initialisiert wird, nachdem es zu ändern, und jede Instanz der Emp-Komponente kann einen eigenen Wert empProperty enthalten. Wenn Sie erben oder Verlängerung einer Komponente, die Funktionen und Eigenschaften der Vorfahren sind im Wesentlichen, kopiert in der Erbe, wo sie aufgerufen und genutzt werden kann, als ob sie ein Teil der Erben. Also, wenn Sie eine Komponente namens Manager, dass die Emp-Komponente erweitert, wie in den Code zu erstellen, die Manager-Komponente enthält auch eine Eigenschaft Namen empProperty. Emp-Manager erweitert, so erbt Emp-Manager die Eigenschaften und Funktionen.


   
   
   
   
   
 

Beachten Sie auch, dass der vorhergehende Code deklariert eine Eigenschaft direkt in Manager namens managersOwnProperty. Manager Emp erbt die Eigenschaften, aber der Prozess ist eine Einbahnstraße, so managersOwnProperty ist nur verfügbar, in der Manager-Komponente und nicht in der Emp-Komponente. Das gleiche Prinzip der Vererbung, dass die Arbeit für die Bauteileigenschaften auch Arbeit für die Komponente Funktionen. The Emp Komponente enthält eine Bonus ()-Funktion, dass die Prämien der nonmanagerial Mitarbeiter berechnet, aber die Manager machen weitere 15 Prozent Bonus. Um Manager Prämien berechnen Sie die Funktionalität des Direktors zu verlängern, indem er erklärt eine Funktion namens ManagerBonus (), wie in den Codes angezeigt. Um den normalen Bonus für einen Mitarbeiter abzurufen, ManagerBonus () muss nennen sich die Bonus ()-Funktion, die in der Emp-Komponente deklariert wird. Aber Manager erweitert Emp, so Bonus () gilt als einer der eigenen Manager-Funktionen zur Verfügung, alle ManagerBonus () tun müssen, ist die Rückkehr Bonus () von 1,15 multipliziert, wie folgt:

Der Code zeigt Vererbung in Aktion. Beachten Sie, wie die Eigenschaften und Funktionen der beiden Emp-Manager und sind direkt von Manager.

 managerServices = CreateObject ( "Component", "com.herdomain.calcbonus.Manager");  

Diese sind alle durch die Manager-Komponente nur zugegriffen:

Manager-Bonus: # managerServices.ManagerBonus ( "012-34-5678") #
managersOwnProperty: # # managerServices.managersOwnProperty

Standard-Bonus: # managerServices.Bonus ( "012-34-5678") #
empProperty: # # managerServices.empProperty

Alles, was Sie bisher getan haben wird als Verlängerung bekannt, da Sie alle Funktionen des Vorfahren Komponente unverändert zu lassen und sie nur zu verlängern, indem sie neue Funktionen und Eigenschaften. In der objektorientierten Welt, diese Technik bezeichnet man als Spezialisierung bekannt: Ein Manager ist eine spezialisierte Mitarbeiter, die die gleiche grundlegende Dinge, plus ein paar mehr tut. Um noch ein paar objektorientierte Begriffe verwenden, ist ein Manager ein Subtyp eines Mitarbeiters, und der Arbeitnehmer ist der Supertyp des Managers. Nicht zu diesen Bedingungen erhalten aufgehängt, wir nennen sie hier nur, damit Sie entlang folgen können in der unvermeidlichen Diskussionen, die Sie beim Vergleich von Komponenten, um Objekte zu hören.

Überschreiben ersetzt Eigenschaften und Funktionen mit etwas völlig anderes, als was ihm geerbt hat geerbt. Um eine Funktion oder Eigenschaft überschreiben, deklarieren Sie einfach eine Funktion oder eine Eigenschaft mit dem gleichen Namen in der Erbe-Komponente. Es ist so einfach. Der Code zeigt zwingenden in Aktion. Das Unternehmen, hergestellt Stan Cox's Telefon-Fooster-entpuppt sich alle betrügen. Durch kreative Trading-Kontrakte mit verschiedenen "Hot-talk" Bündelung von Dienstleistungen und Service-Optionen mit dem Modell Fooster's ADHCC (AutoDial ColdFusion Hot Chicks) Telefon, Fooster angeblich nicht vorhandene Gewinne, die aus der Aktienkurs steigen Himmel hoch und Investoren anzuziehen. Das Geld, das in Gießen gestartet, so das Unternehmen, um etwas zu tun zu finden. Die Antwort: Mitarbeiterprämien.


   
   
   
   
   
   
 

Wenn Sie also ein Fooster Mitarbeiter, Ihre gesamte jährliche Bonus ist Ihr Weihnachtsgeld plus 113 Millionen Dollar. Sweet!, Indem es seine eigenen Bonus ()-Funktion, die Fooster überschreibt die Komponente Bonus ()-Funktion aus der Employee-Komponente vererbt, aber die geerbten XmasBonus ()-Funktion ist noch vorhanden, weil es nicht überschrieben werden. Der Code zeigt Fooster Bonus-System in Aktion.

 embezzlerServices = CreateObject ( "Component", "com.herdomain.calcbonus.Fooster"); 

Diese sind alle durch die Fooster Komponente nur Zugriff:

Standard-Bonus, Fooster-style: # embezzlerServices.Bonus ( "012-34-5678") #
empProperty: # # embezzlerServices.empProperty
foostersOwnProperty: # # embezzlerServices.foostersOwnProperty

Siehst du, wie einfach ColdFusion Komponente Vererbung ist? Die Regeln sind einfach: Ancestor Funktionen und Eigenschaften sind in der Erbe, es sei denn außer Kraft gesetzt werden. Diese Beispiele sind, von der Notwendigkeit, sehr kurz. Real-Welt-Implementierungen der Komponente zwingenden sind das Ergebnis sorgfältiger Planung und Design-Komponente, denn sie berücksichtigt den vollständigen Satz von Verhaltensweisen jedes Bauteil mit seinem erweiterten Subtypen tragen. Versuchen Sie nicht, dass bei einigen der Kategorie der Dinge in der Natur, wie Flugzeuge oder Waffen, und Sie sehen, wie schnell das ist nicht eine triviale Angelegenheit.

Ein Artikel eingereicht von Christian Roldan


Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle.
Wichtig: Dieser Artikel "Die Erweiterung des geerbten Funktionen und Eigenschaften" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.


Online: 257 users browsing the articles directory