zoukankan      html  css  js  c++  java
  • 23种设计模式学习之抽象工厂模式

    工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码

    动物的抽象接口

    public interface Animal {
        void run();
    }
    

     鸟实现动物的跑方法

    public class Bird implements Animal {
        public void run() {
            System.out.println("飞着跑");
        }
    }
    

     虫子实现动物的跑方法

    public class Worm implements Animal {
        public void run() {
            System.out.println("趴着跑");
        }
    }
    

     生成动物的工厂的接口

    public interface AnimalFactory {
         Animal createAnimal();
    }
    

     生产鸟的工厂

    public class BirdFactory implements AnimalFactory {
        @Override
        public Animal createAnimal() {
            return new Bird();
        }
    }
    

     生产虫子的工厂

    public class WormFactory implements AnimalFactory {
        @Override
        public Animal createAnimal() {
            return new Worm();
        }
    }
    

    利用工厂生产动物

    public class Demo {
        public static void main(String[] args) {
            AnimalFactory factory=new BirdFactory();
            Animal animal = factory.createAnimal();
            animal.run();
        }
    }
    
  • 相关阅读:
    PathInfo模式,thinkPHP模板与控制之间的关系
    thinkPHP无法显示验证码问题
    jQuery.validate 中文API手册
    MySQL 常用函数
    MySQL插入、更新与删除数据 习题
    MySQL查询语句练习题
    在windows下SphinxCoreseek的配置安装与测试
    Ubuntu上Coreseek+PHP的安装
    Ubuntu下安装CoreSeek
    Ubuntu更新命令
  • 原文地址:https://www.cnblogs.com/2nao/p/8214433.html
Copyright © 2011-2022 走看看