問題タブ [template-method-pattern]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oop - OOP - 「デフォルト」の悪いクラス名?
パターンのテンプレートメソッドタイプを実装しており、動作を実装するためのクラスがいくつかあります。
例として、私の構造は次のとおりです。
「デフォルト」クラスは、カスタム タイプが必要ない場合の動作を保持します。私の質問は、「デフォルト」はクラスの悪い名前ですか?
私がこの質問をしているので、私はすでに名前についていくつかの深刻な疑問を持っていると思いますが、型の中でデフォルトの動作を提供するクラスを他に何と呼びますか?
java - スーパークラス - 抽象クラスの具象メソッド
抽象クラス Shape、いくつかのサブクラス、および面積、周囲を計算し、オーバーライドされる形状を描画するためのいくつかのメソッドがあります。このアプリケーションの抽象クラスでテンプレート メソッドを見つけようとしていますが、何も思いつきません。すべての形状で同一で、GUI でも何かを生成する一般的な方法は見つかりませんでした。2つの形状の面積を比較するメソッドを抽象クラスに持つことを考えましたが、これを使用できないと思うので(クラスのインスタンスを参照して)、その方法を理解できません抽象クラス。すべての形状に共通するものはありますか?また、テンプレートの方法は何でしょうか? ありがとうございました。
c++ - コンストラクターでテンプレート メソッド パターンを使用することは可能ですか?
重複の可能性:
コンストラクター内での仮想関数の呼び出し
クラス Shape とそのサブクラス Sphere があります。
では、 Shape コンストラクターでサブクラスのものをどのように処理できますか? テンプレート メソッド パターンに頼ることもでき ますが、コンストラクターで純粋仮想関数を呼び出さなければなりません。私は試しましたが、コンパイラはそれを好きではありませんでした
編集:
コンストラクターを新しいメソッド「init」に移動することにしました。仮想メソッドは「subInit」になります。
基本的にはテンプレートメソッドのパターンです
クライアントは次のように書き込みます。
それから私は私の答えを持っています:少なくともC ++では、コンストラクターでこのパターンを適用することは不可能です
java - テンプレート メソッド パターン - 命名規則
RenderableEntityという名前のこの抽象クラスがあります。
render()
抽象保護されたメソッドにいくつかのロジックがラップされたパブリック メソッドがありrender()
ます。render()
この抽象メソッドに名前を付けるにはどうすればよいですか。ある種の慣習はありますか。doRender()
、makeRender()
保護されたメソッドの場合render()
?
編集:このスニペットがコンパイルされないことはわかっています。同じ名前と同じパラメーターを持つメソッドを持つことはできないため、この抽象メソッドに名前を付ける方法を考えていました。
javascript - JS テンプレート メソッド パターンの this の意味
マークされた行が見つからないのはなぜprotectedACMember
ですか?
プライベート、保護、およびパブリック メンバーをシミュレートするための適切なパターンはありますか? 静的/非静的も?
java - 静的クラスのテンプレート メソッド パターン
いくつかの作業を実行する util クラスがあります。明らかに、拡張のために閉じられており、すべてのメソッドは静的です。簡単にするために、クラスは次のようになります。
クラスにdoWork
は、多くの計算を実行するメソッドがあります。ところで、メソッドはヘルパー メソッドhelp
を呼び出して何らかの結果を取得し、残りのコードはhelp
メソッドによって返された結果を使用します。
ここで、クライアント コードで method の機能を再利用したいのですdoWork
が、呼び出す代わりにmethodhelp
を呼び出したいと思いますhelp2
。最も簡単な解決策doWork2
は、に置き換えhelp
てメソッドを作成するだけhelp2
です。
doWork
のすべての変更はいずれかで複製する必要があるため、これは非常に悪いアプローチdoWork2
です。これはパターンに非常に似てTemplate Method
いますが、ここには拡張機能がないため、適用できません。
このメソッドにパラメーターを追加するために思いついた最善の解決策ですが、既存のすべてのユーザーを保持しますdoWork
。
この問題を解決するために適用できるより良い設計ソリューションは何ですか? 持っているような柔軟性を実現する方法はありTemplate Pattern
ますが、util クラスへの適用にはありますか。
前もって感謝します。
c# - ファクトリ メソッド パターンと抽象ファクトリ パターン
多くの方法で説明されている質問がありますが、まだ明確になっていません。
- 抽象ファクトリパターンにおける「オブジェクト合成」によるオブジェクトの作成とは?
どちらのパターンも継承を使用してオブジェクトを作成しているようです。
java - json から Java オブジェクトへの一般的な解析
私はいくつかのJavaクラスを持っておりMyClass1
、MyClass2
その状態はjsonオブジェクトに保存されています:
ここで、for help を使用して Json オブジェクトを Java オブジェクトに解析する汎用メソッドを作成したいと思いnet.sf.json
ます。
MyClass1 から始めましょう - List<MyClass1>
json で記述された 2 つのオブジェクトを含む を作成したいと思います。
私の最初の質問は - 5行目は有効ですか? 私の 2 番目の質問は 8 行目です。ある時点で type のオブジェクトを作成したいのですT
が、それは可能ですか?
助けてくれてありがとう!
編集:多分これは私が探しているものです。編集についてもコメントしていただければ幸いです。
c# - 継承なしのテンプレート メソッド パターン
具象クラスが基本クラスから継承されず、パターンの全体的な機能が維持されるように、テンプレート メソッド パターンのバリアントを実装するにはどうすればよいでしょうか。継承できない理由は、別のクラスから継承する必要があり、多重継承が利用できないためです。
たとえば、次の Tempate メソッド パターンがあるとします。
ConcreteClass が BaseClass を継承せずに同じ結果を得るにはどうすればよいですか?