2

オブジェクトに新しいプロパティを追加したり、このオブジェクトを処理する別のクラスのメソッドを拡張したりするなど、追加する必要のある機能がいくつかあります。私が使用している製品(C#2.0)のソースコードを扱っていますが、実際には変更したくないので、拡張したいだけです。

理想的には、これを行うための別のアセンブリを用意して、それがコードであることを明確にしたいと思います。部分的なクラスとデリゲートが進むべき道のようですが、これが可能かどうかはわかりません。誰かが似たようなことをしましたか?または何か良い記事を知っていますか?

4

4 に答える 4

3

Decoratorパターンを確認してください。これはまさにあなたが探しているものです。既存のクラスを継承し、追加のロジックで拡張できます。基本機能を隠したい場合は、プロキシパターンもあります。

于 2009-04-03T10:04:11.823 に答える
3

hfcs101が言ったように。

いくつかの既存の OO 設計パターンを考慮して、クラスを拡張できるかどうかを確認してください。

を見てみましょう:

問題に厳密に一致するパターンが見つかるかどうかを確認してください。Decorator が最有力候補のようです。

于 2009-04-03T10:06:40.257 に答える
0

元のクラスを「部分」クラスにも変更する必要があり、2 番目のアセンブリの名前空間が最初のアセンブリの名前空間と一致し、両方のアセンブリがアセンブリを使用するプロジェクトで参照されていることを確認する必要があります。 . そこからは、自由に自分の意志で拡張することができます。

于 2009-04-03T08:48:33.863 に答える
0

クラスから継承できますか、それとも封印されていますか? 継承は、既存のクラスを拡張するオブジェクト指向の方法です...

于 2009-04-03T09:05:19.563 に答える