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;
        }
    }
  • 相关阅读:
    Java Native Method
    SQL语句优化
    Ibatis的环境搭建以及遇到的问题解决
    Java 构建器
    SpringMVC自定义视图 Excel视图和PDF视图
    java 枚举的常见使用方法
    mysql 根据某些字段之和排序
    MFC The Screen Flickers When The Image Zoomed
    How To Debug Qmake Pro File
    Gcc And MakeFile Level1
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5609218.html
Copyright © 2011-2022 走看看