前提・実現したいこと
こんにちは。独学でJavaを勉強中のものです。
考え方で分からないことがあったので質問させていただきます。
具体例として、下記のようなクラスBookがあり、そのBookクラスをまとめたBookshelf(本棚)というものを作りたいと考えています。
このBookshelfは文字通り本棚のような役割を果たし、いろいろな人(他クラス)から取り出したり追加したりできるものです。
このBookshelfをどこに書けばいいのか、という点で悩んでいます。
lang
1public class Book { //本を表すクラス。コンストラクタなどは省略 2 private String name; 3 private int value; 4 ... 5}
自分は今、このBookクラス内にstaticフィールドとしてbookshelfを作っているのですが、もっといい方法がありそうな気がします。
lang
1public class Book { //getter、setterは省略 2 private static List<Book> bookshelf = new ArrayList<>(); 3 4 private String name; 5 private int value; 6 ... 7}
試したこと - Bookshelfクラスを作る
lang
1public class Bookshelf { //コンストラクタなどは省略 2 private List<Book> bookshelf = new ArrayList<>(); 3 4 public void add(Book book) { 5 //本の追加 6 } 7}
色んな書籍だと、この方法が多いような気がしました。
しかし、自分が使っていない理由として、
1、本棚を使いたいクラスがあるたびにインスタンスを作る必要があるのでメモリの無駄
2、このクラスはBookクラスしか扱わないので、Bookクラス内に本棚を作ったほうがいいと思った
補足情報
状況によって最適なことは変わると思いますが、この場合はこう、のような具体例やその理由があると助かります。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/10/18 09:33