JAvaファクトリモード(設計モード)
ファクトリメソッドの役割と目的は、オブジェクトの作成と使用を分離することです.
はっきり言って、ファクトリモードはデカップリングのために、オブジェクトの作成と使用のプロセスを分離します.
直接poコードを
はっきり言って、ファクトリモードはデカップリングのために、オブジェクトの作成と使用のプロセスを分離します.
直接poコードを
/**
*
*/
public interface IGirl {
//
public void washClothes();
//
public void cook();
//
public void dance();
//
public void sing();
}
/**
*
*
*/
public class Linwudi implements IGirl{
@Override
public void washClothes() {
System.out.println(" ");
}
@Override
public void cook() {
System.out.println(" ");
}
@Override
public void dance() {
System.out.println(" ");
}
@Override
public void sing() {
System.out.println(" ");
}
}
/**
*
*
*/
public class Fengjie implements IGirl{
@Override
public void washClothes() {
System.out.println(" ");
}
@Override
public void cook() {
System.out.println(" ");
}
@Override
public void dance() {
System.out.println(" ");
}
@Override
public void sing() {
System.out.println(" ");
}
}
/**
*
*
*/
public class GirlFactory {
/**
* ( ) , ( )
* ( , )
*/
public static IGirl factory(int type) {
IGirl girl = null;
switch (type) {
case 1:
girl = new Linwudi();
break;
case 2:
girl = new Fengjie();
break;
default:
throw new IllegalArgumentException(" , ");
}
return girl;
}
}
/**
*
*/
public class Zhouxingxing {
/**
*
* ( , , ,
* ,
* , 。)
* ( , )
*
*/
public void life() {
// , , ,
IGirl girl = GirlFactory.factory(2);
girl.cook();
girl.dance();
girl.washClothes();
girl.sing();
}
}
/**
*
*/
public class TestZhouxingxing {
public static void main(String[] args) {
Zhouxingxing zhouxingxing = new Zhouxingxing();
zhouxingxing.life();
}
}