zoukankan      html  css  js  c++  java
  • factory工厂模式

    工厂方法模式

    工厂方法模式概述
        工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现

    简单理解:

      与简单工厂模式类似,简单工厂模式是一个工厂,用户将条件为构造传入工厂,逻辑判断在工厂内,工厂只是一个创建对应的子类,然后利用泛型操作。

      工厂模式:不同工厂创建不同子类,抽象出一个工厂接口,使用哪一种工厂由用户自己选择。
        
    优点:
        客户端不需要在负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体
        的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性
        
    缺点:
        需要额外的编写代码,增加了工作量

    package com.factory;
    
    public interface Animal {
        public void eat();
    }
    package com.factory;
    
    public class Dog implements Animal {
    
        @Override
        public void eat() {
            System.out.println("狗吃肉");
        }
    
    }
    package com.factory;
    
    public class Cat implements Animal {
    
        @Override
        public void eat() {
            System.out.println("猫吃鱼");
        }
    
    }
    package com.factory;
    
    public interface Factory {
        public Animal createAnimal();
    }
    package com.factory;
    
    public class CatFactory implements Factory {
    
        @Override
        public Animal createAnimal() {
            return new Cat();
        }
    
    }
    package com.factory;
    
    
    
    public class DogFactory implements Factory {
    
        @Override
        public Animal createAnimal() {
            return new Dog();
        }
    
    }
    package com.factory;
    
    public class AnimalDemo {
        public static void main(String[] args) {
            //买一只狗
            //建狗厂
            Factory f=new DogFactory();
            Animal d=f.createAnimal();
            d.eat();
            Factory f1=new CatFactory();
            Animal c=f1.createAnimal();
            c.eat();
        }
    }
  • 相关阅读:
    每天干的啥?(2017.7)
    每天干的啥?(2017.6)
    每天干的啥?(2017.5)
    每天干的啥?(2017.4)
    C# WinForm中如何让当前应用程序只允许启动一个实例
    C# WinForm 关闭登陆窗体后进程还再内存怎么办?
    ASP.NET在MVC控制器中获取Form表单值的方法
    C#封装CRUD到SqlHelper类解读
    windows 10微软账户不能访问局域网共享,但是本地账户可以访问
    C#高级参数params的使用
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5609219.html
Copyright © 2011-2022 走看看