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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不安分的程序猿 中级黑马   /  2016-5-30 01:57  /  301 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/**
* 工厂方法模式:
*         优点:
*                 不需要更改已经存在的代码
*         缺点:
*                 代码量大
*
*/
public class Demo03_Factory {

        public static void main(String[] args) {
                Animal a1 = new CatFactory().getAnimal();
                Animal a2 = new DogFactory().getAnimal();
                Animal a3 = new SnakeFactory().getAnimal();
        }

}
class Animal {}
class Cat extends Animal {}
class Dog extends Animal {}
class Snake extends Animal {}
interface AnimalFactory {
        Animal getAnimal();
}
class CatFactory implements AnimalFactory {

        @Override
        public Animal getAnimal() {
                return new Cat();
        }
       
}
class DogFactory implements AnimalFactory {

        @Override
        public Animal getAnimal() {
                return new Dog();
        }
       
}
class SnakeFactory implements AnimalFactory {

        @Override
        public Animal getAnimal() {
                return new Snake();
        }
       
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马