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!
  • 相关阅读:
    适配器模式
    自己DIY word2010脚注和尾注没有的格式
    Linux单网卡,双IP,双网关配置,并搭建squid proxy上网
    about using gnuplot
    ReadDirectoryChangesW 函数 流沙
    Jquery easyui 异步树 流沙
    Overlapped I/O 学习 流沙
    jQuery.get(url,[data],[callback]) 流沙
    MsgWaitForMultipleObjectsEx用法 流沙
    Oracle smon_scn_time 表 说明
  • 原文地址:https://www.cnblogs.com/anny0404/p/5085261.html
Copyright © 2011-2022 走看看