zoukankan      html  css  js  c++  java
  • java设计模式(二)工厂模式

      工厂模式是最常见的实例化对象的模式,用来替代new操作。采用这种模式创建对象会有一些额外的操作,但他会带给系统更大的扩展性和更少的修改量。典型的应用spring bean容器。下面简单实现工厂的例子。

    1、动物接口,提供公用方法体

    public interface Animal {
        public void eat();
    }

    2、猫类,继承动物接口,实现猫的eat方法

    public class Cat implements Animal {
        public void eat() {
            System.out.println("猫在吃饭...");
        }
    }

    3、狗类,继承动物接口,实现狗的eat方法

    public class Dog implements Animal {
        public void eat() {
            System.out.println("狗在吃饭...");
        }
    }

    4、工厂类

      需要注意两点:1)返回类型为接口 2)通过反射实现类的实例化

    public class AnimalFactory {
        public Animal getAnimalByClassName(String className) {
            Animal a = null;
            try {
                a = (Animal) Class.forName(className).newInstance();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            return a;
        }
    }

    5、测试类

    public class Model {
        public static void main(String[] args) {
            AnimalFactory af = new AnimalFactory();
            Animal a = af.getAnimalByClassName("design_pattern.factory.Cat");
            a.eat();
            a = af.getAnimalByClassName("design_pattern.factory.Dog");
            a.eat();
        }
    }

     代码:https://github.com/shaoyesun/jdk_test.git

  • 相关阅读:
    Golang之ring.Ring的Link操作
    Servlet3.0新特性之web-fragment.xml模块化配置文件
    使用filter代替jsp获取参数
    数据库中常用的字符串截取函数-总结
    js判断两字符串是否相等不区分大小写
    java读取excle内容(类似表结构)
    postgreSQL数据库分页查询
    3D轮播图案例
    3D立方体案例
    去除HTML双击背景和input框取消输入颜色
  • 原文地址:https://www.cnblogs.com/sunjf/p/java_factory.html
Copyright © 2011-2022 走看看