iは、一般的にはC#またはOOPに新たなんだと思っていた次の継承で可能である場合:隠す派生クラス
私は、通信リンク設定したいとUDPまたはシリアル通信を使用できるようにしたいです。 だから、私は2クラス「LinkUdp」と「LinkSerial」を導出し、4つの方法今
をオーバーライドし、この基本クラスから.close、.openメソッドを抽象基底クラス「リンク」を定義し、.send、.receive オブジェクトを持つコードを 'Link'クラスに直接書くことは可能ですか?私は次のようになります:
リンクmyLink = new Link( "10.0.0.1"); //今コンパイラは LinkUdpクラスを使用することを知っています
リンクmyLink = new Link( "COM1"); //コンパイラは
や私のように専用の私のコードを記述する必要がありますLinkSerialクラスを使用する を知っている:
LinkUdp myLink =新LinkUdp( "10.0.0.1")。これは十分に明確である
希望... おかげ
編集: iは、2つの異なる実装を記述することなくので、私は、サブクラスにオブジェクトを渡すことができます「リンク」クラスを使用したいです: ので、この後、私はクラスを持っている
CommunicationHandler myComm =新しいCommunicationHandler(myLink)。
、その後、このハンドラは、UDPまたはシリアル使用して、私を心配する必要はありません...
私はあなたが工場出荷時のパターンはhttp://www.dofactory.com理解するために、このリンクを使用し実装すると思います/ net/factory-method-design-pattern – rashfmnb
'Link'が抽象クラスである場合、そのインスタンスを直接作成することはできません。 '新しいリンク(...)'は無効です。 –