zoukankan      html  css  js  c++  java
  • simplefactory简单工厂模式

    简单工厂模式概述
        又叫静态工厂方法模式,它定义一个具体的工厂类负责一些类的实例

    优点
        客户端不需要在负责对象的创建,从而明确了各个类的职责

    缺点:
        这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某
        些对象的而创建方式不通风,就需要不断的修改工厂类,不利于后期的维护

    package com.simplafactory;
    
    public interface Animal {
        public void eat();
    }
    package com.simplafactory;
    
    public class Cat implements Animal {
    
        @Override
        public void eat() {
            System.out.println("猫吃鱼");
        }
    
    }
    package com.simplafactory;
    
    public class Dog implements Animal {
    
        @Override
        public void eat() {
            System.out.println("狗吃肉");
        }
    
    }
    package com.simplafactory;
    
    public class AnimalDemo {
        public static void main(String[] args) {
    //        Dog d=new Dog();
    //        Cat c=new Cat();
    //        
    //        c.eat();
    //        d.eat();
    //        
    //        System.out.println("===============");
            
    //        Animal d=new Dog();
    //        Animal c=new Cat();
    //        d.eat();
    //        c.eat();
    //        AnimalFactory af=new AnimalFactory();
    //        Dog d=af.createDog();
    //        Cat c=af.createCat();
    //        d.eat();
    //        c.eat();
            AnimalFactory af=new AnimalFactory();
            Dog d=(Dog) af.createAnimal("dog");
            Cat c=(Cat) af.createAnimal("cat");
            if(d!=null){
                d.eat();
            }
            if(c!=null){
                c.eat();
            }
            
        }
    }
    package com.simplafactory;
    
    public class AnimalFactory {
    //    public Dog createDog(){
    //        return new Dog();
    //    }
    //    
    //    public Cat createCat(){
    //        return new Cat();
    //    }
    
        public Animal createAnimal(String name){
            if("cat".equalsIgnoreCase(name)){
                return new Cat();
            }
            else if("dog".equalsIgnoreCase(name)){
                return new Dog();
            }
            return null;
        }
    }
  • 相关阅读:
    sourcenav安装
    vim-addon-manager【转】
    zmq重点
    一个简单的解决方法:word文档打不开,错误提示mso.dll模块错误。
    微软验证码项目 Captcha Code Demo 从 .NET Core 1.1.2升级到2.1.0
    海康设备如何接入萤石开放平台
    ABP 启用多租户实现数据隔离
    Docker 开发者常用操作命令
    .NET Core 深度克隆对象,引用类型的平行世界
    详解 .NET Core 遍历 List 并移除项
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5609218.html
Copyright © 2011-2022 走看看