您的位置:首页 > 其它

大话设计模式_工厂方法模式

2013-03-09 12:42 232 查看
大学生和社区志愿者学习雷锋帮助老人,扫地,洗衣服,买米为例.

package com.wzs.design;

/**
* 大话设计模式--page73 工厂方法
*
* @author Administrator
*
*/
public class FactoryMethod {
public static void main(String[] args) {
IFactory iFactory = new UndergraduateFactory();// 大学生雷锋工厂
iFactory.createLeiFeng().buyRice();
iFactory.createLeiFeng().wash();
iFactory.createLeiFeng().sweep();
System.out.println();
iFactory = new VolunteerFactory();// 志愿者雷锋工厂
iFactory.createLeiFeng().buyRice();
iFactory.createLeiFeng().wash();
iFactory.createLeiFeng().sweep();
}
}

/*
* 创建雷锋的工厂
*/
interface IFactory {
LeiFeng createLeiFeng();
}

/*
* 大学生雷锋工厂
*/
class UndergraduateFactory implements IFactory {

@Override
public LeiFeng createLeiFeng() {
return new Undergraduate();
}

}

/*
* 志愿者雷锋工厂
*/
class VolunteerFactory implements IFactory {

@Override
public LeiFeng createLeiFeng() {
return new Volunteer();
}

}

/*
* 雷锋
*/
abstract class LeiFeng {
public abstract void sweep();

public abstract void wash();

public abstract void buyRice();
}

/*
* 大学生雷锋
*/
class Undergraduate extends LeiFeng {

@Override
public void buyRice() {
System.out.println("大学生帮老人买米.");
}

@Override
public void sweep() {
System.out.println("大学生帮老人洗衣服.");
}

@Override
public void wash() {
System.out.println("大学生帮老人扫地.");
}
}

/*
* 志愿者雷锋
*/
class Volunteer extends LeiFeng {

@Override
public void buyRice() {
System.out.println("志愿者帮老人买米.");
}

@Override
public void sweep() {
System.out.println("志愿者帮老人洗衣服.");
}

@Override
public void wash() {
System.out.println("志愿者帮老人扫地.");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息