工厂模式:将实例的创建封装在一个工厂中,该工厂中的方法返回的是一系列base类衍生出来的类。
分为两种实现:1、简单工厂;2、静态工厂
1、简单工厂实现代码
public class SimpleFactor {
public Object getgame(String type){
Object result = new Object();
switch (type){
case "cj":
result = new CJgame();
break;
case "cf":
result = new CFgame();
}
return result;
}
}
2、静态工厂实现
package design_absFractor;
//测试
public class absfactory {
public static void main(String[] args) {
AllenFac allenFac = new AllenFac();
allenFac.getAniaml().realAniaml();
allenFac.getFriut().realFriut();
}
}
//水果类
interface friut {
void realFriut();
}
class apple implements friut{
@Override
public void realFriut() {
System.out.println("i am is a apple");
}
}
class balanan implements friut{
@Override
public void realFriut() {
System.out.println("i am is a balanan");
}
}
//动物类
interface aniaml {
void realAniaml();
}
class dog implements aniaml{
@Override
public void realAniaml() {
System.out.println("i am is a crul dog");
}
}
class brid implements aniaml{
@Override
public void realAniaml() {
System.out.println("i am is a urge bird");
}
}
//抽象工厂(base)
interface absFac {
friut getFriut();
aniaml getAniaml();
}
//具体工厂
class AllenFac implements absFac{
@Override
public friut getFriut() {
return new balanan() ;
}
@Override
public aniaml getAniaml() {
return new dog();
}
}