zoukankan      html  css  js  c++  java
  • 【设计模式】之工厂模式

     

    目录

    之我所见 

      工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。

      缺点:当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。

    结构框图

    代码实例

    interface Mcdonald{
        void cooking();
    }
    
    class Hamburger implements Mcdonald{
        @Override
        public void cooking() {
            System.out.println("@-------MM吃汉堡-------@");
        }
    }
    
    class Cola implements Mcdonald{
        @Override
        public void cooking() {
            System.out.println("@-------MM喝可乐-------@");
        }
    }
    
    class Frenchfries implements Mcdonald{
        @Override
        public void cooking() {
            System.out.println("@-------MM吃薯条-------@");
        }
    }
    
    public class Factory {
        public Mcdonald getFood(String type){
            if(type==null){
                return null;
            }
            
            if(type.equals("Hamburger")){
                return new Hamburger();
            }
            else if(type.equals("Cola")){
                return new Cola();
            }
            else if(type.equals("Frenchfries")){
                return new Frenchfries();
            }
            return null;
        }
        
        
        public static void main(String[] args) {
            Factory factory = new Factory();
            
            System.out.println("@-------MM想吃汉堡-------@");
            Mcdonald m1 = factory.getFood("Hamburger");
            m1.cooking();
            
            
            System.out.println("@-------MM想喝可乐-------@");
            Mcdonald m2 =factory.getFood("Cola");
            m2.cooking();
            
            
            System.out.println("@-------MM想吃薯条-------@");
            Mcdonald m3 = factory.getFood("Frenchfries");
            m3.cooking();
            
        }
    }

      结果

    @-------MM想吃汉堡-------@
    @-------MM吃汉堡-------@
    @-------MM想喝可乐-------@
    @-------MM喝可乐-------@
    @-------MM想吃薯条-------@
    @-------MM吃薯条-------@

    总结

    追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory。

    Don't stop!Never give up!
  • 相关阅读:
    全站导航
    常用模块
    模块的引用的路径的查找
    类的魔术方法
    包装和授权
    类内置的attr属性
    反射
    三大特性之多态
    三大特性之封装
    python应用:爬虫框架Scrapy系统学习第二篇——windows下安装scrapy
  • 原文地址:https://www.cnblogs.com/anny0404/p/5085261.html
Copyright © 2011-2022 走看看