継承された関数やプロパティを拡張する

我々は過ぎると、率直に言って、多くのそれを真剣に誇張されて、ColdFusionコンポーネントの継承の理論について言っている。オブジェクトでの継承の株式を、その名前指向の世界が、そのすべてについてのそれを共有。 CFCの継承を容易に、次の3つの簡単な文を要約することができます:

  

1つのコンポーネントから、または別の拡張は、後に継承するコンポーネントは、その祖先のプロパティとメソッドを使用することができますを継承することができます。

場合は、継承コンポーネントの継承コンポーネントを介して呼び出すことができる独自のメソッドを別の人は、先祖からの名前、両方の親のメソッドを継承し、コンポーネントのメソッドを宣言します。同じことが一致していない名前を使用してプロパティを宣言するための真の保持して自分たちの祖先だ。

場合は、継承コンポーネントの独自のメソッドを宣言すると、継承コンポーネントのメソッドは、同じ名前の場合と同様に、祖先のメソッドを隠されている祖先のメソッドをオーバーライドし、これらの祖先のように同じ名前の。同じことは、自分たちの祖先のだけ念頭に置いて次の部品を介して進んでは、継承は、これよりも複雑だとは思わないとして、これらの3つのシンプルな原則を守って。一致する名前を使用してプロパティの宣言にも当てはまります。相続現実世界のColdFusion開発ではいくつかのアプリケーションがありますが、検索することがまれている可能性だ。しかし、そんなには、お客様のアプリケーションの場所が正当化される可能性があります見分けることができます継承を理解する必要があります。

あなたがコンポーネントを拡張について学ぶためには、コードで作成されたパッケージを使用することができます。ただし、我々は先に議論していない、我々 empPropertyとして、以下の名前がEmpのコンポーネントのプロパティの作成者:

Empのコンポーネントのこのスコープ内の変数を作成すると、そのコンポーネントの変数のプロパティは、コンポーネントの初期化領域内のすべてのコードを一度は、コンポーネントのインスタンスとして実行され、最初に作成されると、これは、empPropertyプロパティは自動的にであることを意味忘れないでください。なりますを作成し、Empのコンポーネントの各インスタンスとして値をオリジナルEmpのように初期化が作成されます。あなたは、Empのコンポーネントの各インスタンスempPropertyの独自の値が含まれる可能性がありますThis.empPropertyの値の後に初期化され変更することができます。もし継承するか、コンポーネントの機能とは、先祖のプロパティを拡張し、本質的にコピーされます相続、そこから呼び出されることにし、使用される場合と同様に相続人の一部であった。場合は、コンポーネントマネージャでは、Empのコンポーネントを拡張するように、コードで示すように名前を作成するので、マネージャコンポーネントは、プロパティが含まれますempPropertyという。ManagerのEmpのため、マネージャがEmpのプロパティや機能を継承し拡張します。


   
   
   
   
   
 

も注目しては、上記のコードを直接マネージャで、managersOwnPropertyという名前のプロパティを宣言します。マネージャが、Empののプロパティを継承するプロセスは、一方通行の通りですので、managersOwnPropertyのみManagerのコンポーネントで使用され、Empのコンポーネントではインチの継承と同じ原理でも、コンポーネントの機能のために働く、コンポーネントのプロパティのために働く。Empのコンポーネント()関数は、nonmanagerial従業員の賞与計算ボーナス含まれていますが、管理者の追加の15%のボーナスを確認します。マネージャーのボーナスを計算するには、関数ManagerBonusという宣言することでマネージャの機能を拡張する()、などのコードに示します。従業員は、通常のボーナスを取得するには、ManagerBonus()は、ボーナス()関数は、Empのコンポーネント内で宣言されて呼び出す必要があります。しかし、マネージャので、ボーナス1マネージャの独自の機能として利用できる()は、Empの拡張、すべてのManagerBonus()()1.15倍ボーナスを返す場合、次のように行う必要があります:

コードアクションの継承を示しています。通知方法のプロパティの両方がEmpとマネージャの機能に直接マネージャからアクセス可能です。

 managerServices = createObjectを("コンポーネント"、"com.herdomain.calcbonus.Manager");  

これらのすべてのマネージャコンポーネントを介してのみアクセスされます:

マネージャのボーナス:#managerServices.ManagerBonus("012-34-5678")#
managersOwnProperty:##managerServices.managersOwnProperty

標準的なボーナス:#managerServices.Bonus("012-34-5678")#
empProperty:##managerServices.empProperty

すべては、あなたがあなたの祖先コンポーネントの未修正のすべての機能を残し、それを拡張するだけの新機能およびプロパティを追加することによって、これまでの拡張として知られてやった。指向の世界では、この技術を専門として知られているオブジェクト:マネージャで人に加えて、さらにいくつかの基本的に同じことをしない特殊な従業員です。これらの用語のハングアップを取得しないでくださいカップル以上のオブジェクトの用語指向を使用するには、マネージャの従業員のサブタイプであり、従業員のマネージャのスーパーです。;ここではそうすることに沿って続くことに言及あなたのオブジェクトへのコンポーネントの比較では音の必然的な議論をした。

オーバーライド全く何を継承していたとは異なるプロパティと関数を継承に置き換えられます。 、関数、またはプロパティをオーバーライドするには、単に相続コンポーネント内の関数または同じ名前のプロパティを宣言します。それは非常に簡単です。コードの動作をオーバーライドを示しています。同社は、製造スタンコックスの電話- Fooster -みんなscammingことが判明。様々な"ホットトーク"サービスとFoosterのモデルADHCC(オートダイヤルホットColdFusionの女)電話番号、Foosterは、その株価は空舞い上がるの高さや投資家を誘致した存在しない利益の侵害とサービスオプションをバンドルすると創造的な取引の契約により。お金を注ぐため、同社とは何かを見つける必要があったを開始した。答え:従業員の賞与。


   
   
   
   
   
   
 

だから、あなたがFooster従業員は、年間総ボーナスプラス113百万ドルのクリスマスのボーナスされています。甘い!()関数は、Foosterコンポーネントは、その独自のボーナスを宣言することで()は、従業員のコンポーネントからも、継承されたXmasBonus()関数は継承された関数のためにオーバーライドされない場合はまだ利用されているボーナスをオーバーライドします。コードの動作Foosterのボーナスシステムを示します。

 embezzlerServices = createObjectを("コンポーネント"、"com.herdomain.calcbonus.Fooster"); 

これらはすべて、Foosterコンポーネントを介してのみアクセスされます:

標準的なボーナス、Foosterスタイル:#embezzlerServices.Bonus("012-34-5678")#
empProperty:##embezzlerServices.empProperty
foostersOwnProperty:##embezzlerServices.foostersOwnProperty

どのように簡単なColdFusionコンポーネントの継承を参照してください何ですか?ルールは単純です:祖先の関数やプロパティ相続オーバーライドされない限りでご利用いただけます。これらの例では、必然的に、非常に短い。ので、考慮し、各コンポーネントの種類とその拡張のサブタイプの動作の完全なセットを取る必要がリアルタイムコンポーネントのオーバーライドの世界での実装は非常に慎重なコンポーネントの計画と設計の結果です。しようとする航空機やガンのような自然の中で物事のいくつかのカテゴリーに、そしてすばやく参照して行う方法は、このささいなことではありません。

記事は、キリスト教のロルダン提出


免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。
重要: この記事は、""自動ソフトウェアによって翻訳された関数と継承されたプロパティを拡張する。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。


Online: 264 users browsing the articles directory