大话设计模式--雷锋依然在人间--工厂方法模式
class LeiFeng{
public void sweep(){//扫地 }
public void wash(){//洗衣 }
public void BuyRice(){//买米 }
}
//学雷锋的大学生
class Undergraduate extends leifeng{}
//学雷锋的社会志愿者
class Volunteer extends leifeng{}
//雷锋工厂
interface IFactory{
LeiFeng CreateLeiFeng();
}
//学雷锋的大学生工厂
class UndergraduateFactory extends IFactory{
public LeiFeng CreateLeiFen(){
return new Undergraduate();
}
}
//社区志愿者工厂
class UndergraduateFactory extends IFactory{
public LeiFeng CreateLeiFen(){
return new Volunteer();
}
}
//工厂方法模式
IFactory factory = new UndergraduateFactory();
LeiFeng Student = factory.createLeiFeng();
student.BuyRice();
student.sweep();
student.wash();