クラスモデルにインターフェイスを作成しました。このインターフェイスには、AとBの2つのメソッドがあり、メソッドAは引数(a)を取り、メソッドBは(まだ)引数を取りません。さらに、このインターフェイスを実装するクラスを作成し、両方のメソッドをオーバーライドしました。
モデルメソッドBについて説明した後、パラメータ(b)も取得する必要があるため、この変更を反映するようにインターフェイスを変更しました。ただし、このインターフェイスを実現するクラスは自動的に更新されません。 1つのクラスでは、インターフェイス間のリンクを再作成してメソッドを追加し、実装するメソッドを指定して、このリンクを再度削除することができます。次に、OLDメソッドのシグネチャも削除する必要があります。エラーが発生しやすいことは言うまでもなく、変更されたインターフェイスを実装するクラスが複数ある場合、これは多くの作業です。
クラスモデル全体でこのタイプの依存関係を更新する方法を知っている人はいますか?
この質問への回答も検索しましたが、あなたの投稿以外には何も見つかりませんでした。 EAフォーラムに質問を投稿しました。
ダイアグラムの目的のみである場合、1つの可能な回避策があります(ただし、少し厄介です)。
結果として
唯一の問題は、コード生成中に、インターフェイスの代わりに抽象クラスが生成されることです。
更新するクラスを選択し、Ctrl + Shift + o
を押します。
この リンク はあなたに詳細な説明を与えます。
Enterprise Architectでは、親クラスおよび実現されたインターフェイスのメソッドを自動的にオーバーライドできます。
親または実現されたインターフェースを持つクラスを選択し、要素|を選択します。上級|オーバーライドと実装メニューオプション。
[操作/インターフェースのオーバーライド]ダイアログで、自動的にオーバーライドする操作/インターフェースを確認し、[OK]ボタンをクリックします。 Enterprise Architectは、子クラスで同等の関数定義を生成します。
クラス間に一般化または実現コネクタを追加するたびにこのダイアログを表示するようにEnterpriseArchitectを構成し、オーバーライド/実装する可能性のある操作/インターフェイスを確認できます。これは、[オプション]ダイアログの[リンク]ページから行います([ツール]、[オプション]、[リンク]メニューオプションを選択します)。