工厂方法模式实例与解析
(1)抽象产品类TV(电视机类)
public interface TV{
public void play();
}
TV是抽象产品类,可以是一个接口也可以是一个抽象类,里面定义了所有产品都具有的业务方法play()。
(2)具体产品类HaierTV(海尔电视机类)
public class HaierTV implements TV{
public void play(){
System.out.println("海尔电视机播放中");
}
}
HaierTV是抽象产品TV的子类,是一个具体的产品,实现了TV接口中的抽象方法
(3)具体产品类HisenseTV(海信电视机类)
public class HisenseTV implements TV{
public void play(){
System.out.println("海信电视机播放中");
}
}
(4)抽象工厂类TVFactory(抽象电视机工厂类)
public interface TVFactory{
public TV produceTV();
}
TVFactory是抽象工厂类,可以是接口也可以是抽象类,它包含了抽象的工厂方法produceTV(),返回一个抽象产品TV类型的对象。
(5)具体工厂类HaierTVFactory(海尔电视机工厂类)
public class HaierTVFactory implements TVFactory{
public TV produceTV(){
System.out.println("海尔电视工厂生成海尔电视机");
return new HaierTV();
}
}
HaierTVFactory是具体工厂类,是抽象工厂TVFactory的子类,实现了抽象工厂中的抽象方法produceTV(),返回一个抽象产品TV类型的对象。
(6)具体工厂类HisenseTVFactory(海信电视机工厂类)
public class HisenseTVFactory implements TVFactory{
public TV produceTV(){
System.out.println("海信电视工厂生成海信电视机");
return new HisenseTV();
}
}