java设计模式--工厂模式

工厂模式:
工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的,工厂模式可分为三类:简单工厂模式、工厂方法模式和抽象工厂模式。
1) 简单工厂
又叫静态工厂,是三种模式中状态结构最简单的,用来接受参数,并根据参数决定返回返回实现同一接口的不同类的实例。
假设客户需要冰箱,他只需要工厂帮他生产就好了,因为这个工厂可以生产产品,
2) 工厂方法模式
为了满足客户的需求,冰箱种类越来越多,一个工厂无法生产所有的冰箱,于是单独分出来多个具体的工厂,每个具体工厂创建一种,具体工厂类只能创建一个具体产品,但冰箱工厂还是个抽象,需要指定某个具体的工厂才能生产出来
3) 抽象工厂模式
随着客户的需求越来越高,空调需要配置,与这个工厂开始生产需要的冰箱和配置。
一个简单的学生和老师都是人的例子:

package design;

/*
工厂设计模式
 */
interface People{//定义一个人的接口  产品的抽象接口
    public void say();//说话
    public void eat();//吃饭
}

class Student implements People{//定义子类Child  都有说话和吃饭的方法
    @Override
    public void say() {
        System.out.println("我是学生");
    }
    @Override
    public void eat() {
        System.out.println("饭真好吃");
    }
}

class Teacher implements People{//定义子类Teacher  同样有说话和吃饭的方法
    @Override
    public void say() {
        System.out.println("我是老师");
    }
    @Override
    public void eat() {
        System.out.println("饭真香");
    }
}

class Factory {// 定义简单工厂类  用来创造学生和老师
    public static People getInstance(String className){
        // 定义接口对象
        if ("Student".equals(className)){//
            People Student = new Student();// 通过Child子类实例化接口
           return Student;
        }else if ("Teacher".equals(className)){
            People Teacher = new Teacher();// 通过Teacher子类实例化接口
            return Teacher;
        }else {
            System.out.println("不存在");
            return null;
        }
    }
}

class FactoryDemo{//测试类
    public static void main(String[] args) {
        People Student = Factory.getInstance("Student");
        Student.say();
        Student.eat();
        People Teacher = Factory.getInstance("Teacher");
        Teacher.say();
        Teacher.eat();
    }
}

测试结果

我是学生
饭真好吃
我是老师
饭真香
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值