私は、ライブラリ管理システムのダミープロジェクトを構築することによって、JavaOOPの概念を実践しているだけです。
最初はBook、Customer、Administrator(Customer、Administratorが抽象ユーザークラスを拡張)のクラスを持っていましたが、次に、ArrayList内の上記のクラスのインスタンスのリストを保持するリストクラスBookCollection、CustomerCollectionを作成しました(しばらくの間データベースを処理していません)。対応するArrayListでadd、delete、sortメソッドを実行します(1つのインライン質問:データベースの処理を開始したら、ArrayList関連のコードをデータベース操作に置き換え、各xyzCollectionがデータベース内のxyzTableを処理する場合は良い設計手法になります)
主な問題:以前、アプリ全体で書籍、顧客のリストのみを維持する必要があると考えていたため、ArrayListsを静的にしました。また、私は十分な静的メソッドを作成しました:addXyz、deleteXyz、searchXyz、sortXyzメソッドしかし今、私は顧客や本の検索のために名前に一致するそれらのリストを返す必要があるかもしれない(あるいはそうすべきである)ことに気付きました。別のArrayListを返します。これは、xyzCollectionのインスタンスである必要がありますが、すべてのインスタンス間で安定して共有されているため、これらのxyzCollectionでArrayListを使用することはできません。
最初は共有ArrayListが必要であるように見えましたが、現在は最初の決定に疑問を持っています。何が正しいのでしょうか?:
- ArrayListと対応するメソッドを非静的にし、呼び出し時に対応するコードを変更する必要があります
- または、XyzCollectionの代わりにArrayListを返す必要があります
コード設計の観点から何が良くなるでしょうか?または、それらをすべて静的にすることで明確な間違いを犯しましたか?