当我们需要实例化一个类的时候,
A a=new A();但是有一点,当需要更改需要实例化的类,我们就必须
改变代码,也就是说类的创建和类的实例化之间耦合程度高,导致代码的可移植行不好
所以,我们就必须使用工厂模式。
工厂模式就是由一个工厂来负责常见我们需要的实例
首先定义一个接口,接口就是一种规范,也是一种抽象
public interface Play {
void play();
}
然后定义两个子类去实现这个接口
public class Chiplay implements Play{
public void play(){
System.out.println("play chinese songs");
}
}
public class Engplay implements Play{
public void play() {
System.out.println("play english songs");
}
}
再定义一个工程,负责实例化这两个子类
public class Playfactory {
public static Play sing(int type){
if(type==1)
return new Chiplay();
if(type==2)
return new Engplay();
return null;
}
}
定义一个测试类,来进行测试
public class playtest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Play p=Playfactory.sing(1);
p.play();
Play p1=Playfactory.sing(2);
p1.play();
}
}
得到的实验结果如图