私は書いたアプリケーションをリエンジニアリングしています。そのため、現在、テーブル定義をテーブルごとに1つずつ別のインターフェイスに分割し、データベース全体のインターフェイス全体を分離しています。相互参照されたインターフェイスに問題がありますか?
そうすることで、私はテーブルインターフェイスで使用されるいくつかの一般的な定数を全体のインターフェイスに持っています。全体のインタフェースは、テーブルインタフェースの定数も利用します。
私はこれを使用してすべての問題がないように見えるアプリをコンパイルして正常に実行しました(基本的にはHello Worldアプリです)。私は実際にこれがコンパイルするのはかなり驚いています。
基本的に、私は問題を引き起こすように運命づけられています。
インタフェースDBAislesTableConstants注 - :
ここではいくつかのサンプルコードです!ちょうど1行
import static mjt.shopwise.DBConstants.DEFAULTORDER;
import static mjt.shopwise.DBConstants.IDTYPE;
import static mjt.shopwise.DBConstants.INT;
import static mjt.shopwise.DBConstants.PERIOD;
import static mjt.shopwise.DBConstants.STD_ID;
import static mjt.shopwise.DBConstants.TXT;
public interface DBAislesTableConstants {
String AISLES_ID_COL = STD_ID;
String AISLES_ID_COL_FULL = AISLES_TABLE +
PERIOD +
AISLES_ID_COL;
String AISLES_ALTID_COL = AISLES_TABLE + STD_ID;
String AISLES_ALTID_COL_FULL = AISLES_TABLE +
PERIOD +
AISLES_ALTID_COL;
String AISLES_ID_TYPE = IDTYPE;
Boolean AISLES_ID_PRIMARY_INDEX = true;
DBColumn AISLESIDCOL = new DBColumn(AISLES_ID_COL,
AISLES_ID_TYPE,
AISLES_ID_PRIMARY_INDEX,
""
);
ArrayList<DBColumn> AISLESCOLS = new ArrayList<>(Arrays.asList(AISLESIDCOL));
DBTable AISLESTABLE = new DBTable(AISLES_TABLE,AISLESCOLS);
}
に減少DBColumとDBTABLEは、私は内部スキーマを作成し、実際のデータベースを更新するために使用することができますどのようなビルドするために使用されるメソッドを持つクラスを定義しています。 DBConstants
インタフェースである: -
DBDatabaseは、例えば、データベース全体に対して定義されたクラスであります以下ではgenerateExportSchemaSQLメソッドを使用します。
これをテストするには、SQLを作成してすべてのテーブルを作成します(これを実行してSQLをSQLite Managerにドロップし、テーブルを作成しました)。 stophereはブレークポイントに使用されたので、SQLを調べてコピーすることができました。
String sql = DBConstants.SHOPWISE.generateExportSchemaSQL();
int stophere = 0;
いくつかの質問:あなたのインターフェイスは定数値だけを定義します、そうですか?そして、あなたはどんな問題を期待していますか? – nandsito
はいのみ定数です。私の懸念は、お互いを参照することで問題が発生する可能性があるということです。例:DBAislesTableConstantsはDBConstantsの値を使用し、その逆もあります(DBConstantsの値を取得する7つのDB ??? TablesConstantsがあり、現在までに3つの値が使用されています)。 – MikeT