A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小麦芽 中级黑马   /  2017-4-1 00:40  /  774 人查看  /  4 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

我会每天跟更新一种设计模式!大家一起探讨学习
工厂模式大致分为三大类,我们先从创造型模式学起,创造型模式,总共五种,第一种就是“工厂模式”

工厂模式,又叫静态工厂方法模式,通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

//先定义一个接口,定义接口就要想到多态
public interface Anima {
       
        void eat();
}
//--------------两个子类-------------------
public class Cat implements Anima {

        @Override
        public void eat() {
                System.out.println("吃鱼");
        }
}

public class Dog implements Anima {

        @Override
        public void eat() {
                System.out.println("骨头");
        }
}

//------------------创建工厂类-------------------------

public class AnimaFactory {

public static Anima getAnima(String type) throws ClassNotFoundException, InstantiationException, IllegalAccessException{
                //利用反射创建类的实例
                Class<?> clazz = Class.forName(type);
                return (Anima) clazz.newInstance();
        }
}
//-------------------------测试代码--------------------------------
public class FactoryTest {

        public static void main(String[] args) {
                       
                try {
                        Anima mCat = AnimaFactory.getAnima(Cat.class.getName());
                        Anima mDog = AnimaFactory.getAnima(Dog.class.getName());
                        mCat.eat();
                        mDog.eat();
                }catch(Exception e) {
                        e.printStackTrace();
                }
        }
}

是不是很easy!如果有不懂的可以问我,明日期待下一个,创造性模式“抽象工厂模式”

4 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
厉害了,楼主加油,每天都更新,让大家一块学习学习
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报

你们的支持,是我写下去的动力
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马