3.工厂方法模式

来源:互联网 发布:c语言无法打开txt文件 编辑:程序博客网 时间:2024/06/06 02:10

package 工厂方法模式;

//工厂方法模式
class LeiFeng{//雷锋

public void Sweep(){
System.out.println("雷锋扫地");
}

}

class Graduate extends LeiFeng{//学雷锋的大学生
public void Sweep(){
System.out.println("大学生扫地");
}
}

class Volunteer extends LeiFeng{//社区志愿者
public void Sweep(){
System.out.println("社区志愿者扫地");
}

}

//工厂方法模式本质也是用来选择实现的,和简单工厂区别在于,工厂方法把选择具体实现的功能延迟到子类中去实现

//雷锋工厂
interface Factory{//雷锋工厂接口
public LeiFeng FactoryMethod();
}

//学雷锋的大学生工厂
class GraduateFactory implements Factory{
public LeiFeng FactoryMethod(){
return new Graduate();
}
}

//社区志愿者工厂
class VolunteerFactory implements Factory{
public LeiFeng FactoryMethod(){
return new Volunteer();
}
}

public class TestClass {
public static void main(String[] args) {
Factory f=new GraduateFactory();//要换成社区志愿者,修改这里就可以
LeiFeng s=f.FactoryMethod();//调用工厂方法

s.Sweep();

 

 }
}

原创粉丝点击