私たちのチームのもう一人の人が、自分のWebフレームワークのためのライブラリとして私にライブラリを提供しました。このフレームワークを「My Friend's Framework」と呼ぶことにしましょう。プログラミングデザインパターン:ファサードかどうか
私は彼のフレームワークから必要なクラスがあります。そのクラスで公開されているプロパティの半分は、自分のアプリケーションに本当に必要なものです。もう半分は必要ありません。このクラスのプロパティを取得するには、いくつかのString操作を行う必要があります。このクラスの上に私自身のフレームワークを開発しているので、可能な限り依存関係を切り離したいと思っています。多分将来、私の別の友人がより良いフレームワークを開発するでしょう。
私がしたことは、そのクラスのファサードクラスを生成したことです。私自身のフレームワークは私のファサードクラスを通してプロパティにアクセスします。 「My Friend's Framework」が変更された場合、1つのファサードクラスを変更するだけで、残りは同じままです。さらに、ストリング操作はファサードクラス内で行われます。また、ファサードクラスは必要なプロパティのみを公開します。だから私自身のフレームワークは、通常のgetter/setterとしてプロパティにアクセスするだけです。
しかし、私はこの男と議論しました。彼は最初に自分のクラスの実装を変更することはないので、私は自分のクラスを直接使用するように強制しています。だから彼はファサードクラスを書くことは本当に価値がないと私に伝えます。しかし、私は同意しない。
私は間違っていますか?私は正しいと信じています。
「彼は自分のクラスを直接使用するように強制しています。どうやって?彼はあなたのためにコードを入力していますか? –
あなたは正しいと思います。あなたがよりスマートな開発者であるように思えます(おそらく、あなた自身のために少し余分な仕事をすることに与えられるかもしれません)。 hvgotcodesの答えは私がおそらく言うことができるすべてをカバーしています。今回はアダプタクラスのAPIを常にラップしています。今回は奇妙な部分だけがあなたの友人が書いています。 –
あなたは本質的にインターフェイスにコーディングして、そのコンポーネント用のアダプタを作成しています。いいですね。しかし、(おそらく "プロパティ"のあいまいな概念のために)、あなたはインターフェースがゲッターやセッター以上のものになりたいと思うかもしれません...ちょっと考えてください... – lijie