工厂模式隐藏了对象创建的过程,用户不需要了解创建的逻辑,直接调用工厂方法获取对象,对于同一类对象具有较好的扩展性,但是只能局限于同一类对象,不同种类的对象无法实现
工厂模式的创建过程如下:
1.定义接口
package factory;
public interface TV {
public void off();
public void open();
}
2.定义子类实现该接口
package factory;
public class HaiErTv implements TV{
public void off(){
System.out.println("haier off");
}
public void open(){
System.out.println("haier open");
}
}
package factory;
public class ChangHongTv implements TV {
@Override
public void off() {
System.out.println("haier off");
}
@Override
public void open() {
System.out.println("haier open");
}
}
3.定义工厂接口
package factory;
public interface TVFactory {
public TV create();
}
4.定义工厂类,实现工厂接口,在工厂类中返回一个对象
package factory;
public class HaiErFactory implements TVFactory {
@Override
public TV create() {
return new HaiErTv();
}
}
package factory;
public class ChangHongFactory implements TVFactory {
@Override
public TV create() {
return new ChangHongTv();
}
}
5.使用
package factory;
public class Test {
public static void main(String[] args) {
//获取一个工厂
TVFactory tvfFactory = new HaiErFactory();
//调用工厂的方法创建对象
TV tv =tvfFactory.create();
tv.open();
}
}
新手上路,理解错误的地方请指正,谢谢