zoukankan      html  css  js  c++  java
  • 工厂模式

    public interface Factory {
        public LeiFeng CreateLeiFeng();
    }
    public class LeiFeng {
        public void sweep() {
            System.out.println("sweep");
        }
    
        public void wash() {
            System.out.println("wash");
        }
    
        public void buyRice() {
            System.out.println("buy rice");
        }
    }
    /**
     * Created by tian on 16-5-29.
     * <p>
     * 定义一个用于创建对象的接口,让子类决定实例化哪一个对象。工厂方法使一个类的实例化延迟到其子类
     * 工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,
     * 也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。想要增加新功能,原来是修改工厂类,
     * 现在是修改客户端。
     */
    public class Main {
        public static void main(String[] args) {
            //简单工厂模式
            LeiFeng studentA = SimpleFactory.CreateLeiFeng("xuesehng");
            LeiFeng zhiyuanzhe = SimpleFactory.CreateLeiFeng("zhiyuanzhe");
            //工厂模式
            Factory factory = new UnderGraduateFactory();
            LeiFeng xuesheng = factory.CreateLeiFeng();
        }
    }
    /**
     * Created by tian on 16-5-29.
     * //简单工厂的实现方法
     */
    public class SimpleFactory {
        public static LeiFeng CreateLeiFeng(String type){
            LeiFeng leiFeng = null;
            switch (type){
                case "xuesheng":
                    leiFeng = new UnderGraduate();
                    break;
                case "zhiyuanzhe":
                    leiFeng = new Volunteer();
            }
            return leiFeng;
        }
    }
    public class UnderGraduate extends LeiFeng{
    
    }
    public class UnderGraduateFactory implements Factory {
        @Override
        public LeiFeng CreateLeiFeng() {
            return new UnderGraduate();
        }
    }
    public class Volunteer extends LeiFeng {
    }
    public class VolunterFactory implements Factory{
    
        @Override
        public LeiFeng CreateLeiFeng() {
            return new Volunteer();
        }
    }
  • 相关阅读:
    栈的实现方式
    复合和继承
    循环链表和双向链表
    抽象类和接口
    private构造器和单例模式
    内部类
    关于初始化和清理
    多态的理解
    幾個小知識
    Youth
  • 原文地址:https://www.cnblogs.com/benniaoxuefei/p/5540496.html
Copyright © 2011-2022 走看看