• 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;
        }
    }
  • 相关阅读:
    分布式框架服务调用超时设计与实现
    分布式框架灰度发布实现
    写给自己的 SOA 和 RPC 理解
    Java 基础【19】代理
    Java 基础【18】 反射与内省
    Spring HttpInvoker 从实战到源码追溯
    Lombok 使用攻略
    Guava Preconditions 工具参数前置校验
    CAS 单点登录【2】自定义用户验证
    Hibernate 离线对象构建通用查询
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5609218.html
Copyright © 2020-2023  润新知