ファクトリパターン超基礎
Advertisements
ファクトリパターンとは
オブジェクト生成を1つの役割とみなし、その機能を分離することである。
具体的には、ファクトリパターンでは、newによるオブジェクト生成をメソッド内に隠蔽する。
package sample2; public class Main { public static void main(String[] args){ //① Book book = Book.getInstance(); //② //Book book = new Book(); book.setName("吾輩は猫である"); book.sayName(); } } class Book { private String name; private String author; //③ private Book(){} //④ static Book getInstance() { Book book = new Book(); return book; } public void setName(String name){ this.name = name; } public void setAuthor(String author){ this.author = author; } public void sayName(){ System.out.println("book name is " + name); } }
①getInstanceはstaticメソッドであるため、インスタンス化しなくても使用可能
②コンストラクタの可視性が「private」であるため、Bookクラスの外ではインスタンス化できない
③コンストラクタの可視性をprivateにすることで、クラス外からインスタンス化できなくする
④staticメソッドにすることで、利用する側がインスタンス化しなくても使用できるようにする
実行結果
book name is 吾輩は猫である