大话设计模式_工厂方法模式
大学生和社区志愿者学习雷锋帮助老人,扫地,洗衣服,买米为例.
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 {@Overridepublic LeiFeng createLeiFeng() {return new Undergraduate();}}/* * 志愿者雷锋工厂 */class VolunteerFactory implements IFactory {@Overridepublic LeiFeng createLeiFeng() {return new Volunteer();}}/* * 雷锋 */abstract class LeiFeng {public abstract void sweep();public abstract void wash();public abstract void buyRice();}/* * 大学生雷锋 */class Undergraduate extends LeiFeng {@Overridepublic void buyRice() {System.out.println("大学生帮老人买米.");}@Overridepublic void sweep() {System.out.println("大学生帮老人洗衣服.");}@Overridepublic void wash() {System.out.println("大学生帮老人扫地.");}}/* * 志愿者雷锋 */class Volunteer extends LeiFeng {@Overridepublic void buyRice() {System.out.println("志愿者帮老人买米.");}@Overridepublic void sweep() {System.out.println("志愿者帮老人洗衣服.");}@Overridepublic void wash() {System.out.println("志愿者帮老人扫地.");}}