2017-11-29 7 views
1

現在のプロジェクトには、2つのライブラリlibAAAlibBBBがあります。 前者のlibAAAには、自分のプロジェクトの基本的な数学と機能(チェスのルールなど)が含まれています。後者のlibBBBは、libAAAに依存しますが、GUI要素(たとえば、単一の図形の描画方法など)が追加されています。実行可能ファイルが別の依存関係によってすでに使用されているライブラリに依存するのは悪い習慣ですか?

実行ファイルは、libAAAlibBBBの両方に依存します。例えば。 libBBBは、チェスゲームのセットアップに使用され、libBBBは、どのように見えるか(コンソール、qt、gtk、...)を定義するために使用されます。

このような冗長な依存関係は問題ないのですか、それとも悪い習慣ですか?

編集: 私はGUIの表現を機械から切り離すことがいかに簡単か気に入っているので、私は尋ねます。例えば。外観やツールキットを変更したい場合は、libHHHを追加して別の実行可能ファイルを作成してください。それだけです。

答えて

1

これは問題ありません。

のは、いくつかの選択肢を見てみましょう:libBBBlibAAAからすべてのコードで

  1. プル:libAAAは、他の文脈で使用されることが意図されていない場合、これは大丈夫です、とそれぞれのサイズが許しますこれは実用的な方法で行われるべきである。しかし、多くの状況において、例えば、 libBBBがはるかに大きく、libAAAlibBBBで使用されているUIフレームワークとは独立して、多くのプロジェクトで小さな再利用可能なライブラリとして使用されている場合、これは機能しません。

  2. libBBBが使用しているコードを直接にコピーしてください:しないでください。これは、などと同じものの多くを行う2つの別々のライブラリ、将来的にアップデートするには2ヶ所、将来のか、それを理解しようとしている他の誰のためにあなたのためのより多くの混乱、

  3. libBBBを持参を意味します:開発スタックと環境によっては、これが常に可能であるとは限りません。多くのアプリケーションでは、パフォーマンスやその他の理由から、別の言語でプログラムされコンパイルされたライブラリが必要な場合があります。

私はたぶん別の代替オプションをいくつか見逃していますが、冗長性にもかかわらず両方の依存関係を維持するのが最適な選択肢です。

あなたが編集で述べたように、libBBBlibAAA(または必要であれば別のライブラリ)を使用する別のUIライブラリに置き換えることもできます。コアアプリケーションコードを分解したり、あなたの依存関係。

関連する問題