多数のFacade配下のクラスの利用をコントロールする。userはFacadeを通じてFacade配下のクラスを利用する
以下のクラス構成で確認します
package | アクセス修飾子 | クラス | 説明 |
---|---|---|---|
sample | public | facade.class | facadeが管理する各クラスの呼び出し、利用をコントロール |
sample | default | sam0.class~sam2.class | int値を戻す |
default | public | user(Main.class) | facadeを利用してsam0.class~sam2.classを利用する |
*user 他の開発者がこのパターンを利用する、という意味合いを含みます
facade.class
package sample;
public class facade{
int res;
public facade(int condition){
switch(condition){
case 0 : res = new sam0().get();break;
case 1 : res = new sam1().get();break;
default : res = new sam2().get();break;
}
this.res = res;
}
public int get(){return this.res;}
}
sam01.class
package sample;
class sam0{ int get(){return 0;} }
class sam1{ int get(){return 1;} }
class sam2{ int get(){return 2;} }
user(Main.class)
import sample.facade;
class Main {
public static void main(String[] args){
facade fd = new facade(8);
System.out.println(fd.get());
}
}