设计模式_简单工厂模式概述和使用

来源:互联网 发布:新装系统无法连接网络 编辑:程序博客网 时间:2024/06/05 20:38
简单工厂模式概述又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例优点客户端不需要在负责对象的创建,从而明确了各个类的职责缺点这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护设计模式:经验总结。A:创建型创建对象B:结构型对象的组成C:行为型对象的功能创建型模式:1:简单工厂模式2:工厂方法模式3:设计模式举例:我要建立一个(创建型),豪华大别墅有泳池、停机场(结构型),用来居住(行为型)。


测试类AnimalDemo

package cn.itcast_01;public class AnimalDemo {public static void main(String[] args) {// 具体类调用Dog d = new Dog();d.eat();Cat c = new Cat();c.eat();System.out.println("--------");// 工厂有了后,通过工厂给造// Dog dd = AnimalFactory.createDog();// Cat cc = AnimalFactory.createCat();// dd.eat();// cc.eat();// System.out.println("--------");// 工厂改进后Animal a = AnimalFactory.createAnimal("dog");a.eat();a = AnimalFactory.createAnimal("cat");a.eat();// NullPointerExceptiona = AnimalFactory.createAnimal("pig");if(a!=null){a.eat();}else{System.out.println("对不起,暂时不提供应动物");}System.out.println("--------");}}

工厂类AnimalFactory

package cn.itcast_01;public class AnimalFactory {private AnimalFactory() {}// public static Dog createDog() {// return new Dog();// }//// public static Cat createCat() {// return new Cat();// }public static Animal createAnimal(String type) {if ("dog".equals(type)) {return new Dog();} else if ("cat".equals(type)) {return new Cat();} else {return null;}}}

抽象类Animal

package cn.itcast_01;public abstract class Animal {public abstract void eat();}

具体类Dog

package cn.itcast_01;public class Dog extends Animal {@Overridepublic void eat() {System.out.println("狗吃肉");}}

具体类Cat

package cn.itcast_01;public class Cat extends Animal {@Overridepublic void eat() {System.out.println("猫吃鱼");}}


0 0
原创粉丝点击