zoukankan      html  css  js  c++  java
  • Java简单工厂模式(SimpleFactoryMode)

    何为简单工厂模式?
    由一个工厂类根据传入的参数,动态创建并返回相应的具体的实例!

    三个构成元素:
    1、工厂类
    2、抽象产品
    3、具体产品

    优点:
    1、提高扩展性
    2、隐藏具体的实现类,并不需要知道产品具体的创建过程,只需要向工厂类传入相应参数,就可以获取相应的产品实例!

    代码演示:
    图片说明文字

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    // 抽象产品
    package com.test.simplefactory;
    
    public interface Person {
    
        public String sayHello(String name);
    
        public String sayGoodbye(String name);
    
    }
    
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    package com.test.simplefactory;
    // 具体产品1
    public class Chinese implements Person {
    
        @Override
        public String sayHello(String name) {
            return "你好," + name;
        }
    
        @Override
        public String sayGoodbye(String name) {
            return "再见," + name;
        }
    
    }
    
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    package com.test.simplefactory;
    // 具体产品2
    public class American implements Person {
    
        @Override
        public String sayHello(String name) {
            return "hello," + name;
        }
    
        @Override
        public String sayGoodbye(String name) {
            return "goodbye," + name;
        }
    
    }
    
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    package com.test.simplefactory;
    // 工厂类
    public class PersonFactory {
    
        // 根据参数的不同返回不同的实例
        public Person getPerson(String name){
    
            Person person = null;
    
            if("chinese".equals(name)){
    
                person = new Chinese();
    
            }else if("american".equals(name)){
    
                person = new American();
    
            }
    
            return person;
    
        }
    
    }
    
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    package com.test.simplefactory;
    // 测试
    public class Client {
    
        public static void main(String[] args) {
    
            /*Person chinese = new Chinese();
    
            System.out.println(chinese.sayHello("张三"));
            System.out.println(chinese.sayGoodbye("张三"));
    
    
            Person american = new American();
    
            System.out.println(american.sayHello("Tom"));
            System.out.println(american.sayGoodbye("Tom"));*/
    
    
    
            PersonFactory factory = new PersonFactory();
            Person chinese = factory.getPerson("chinese");
    
            System.out.println(chinese.sayHello("张三"));
    
        }
    
    }
  • 相关阅读:
    吉特日化MES-电子批记录普通样本
    吉特日化配料系统-关于25针串口转接
    吉特仓储管理系统--元宵送开发者一份礼物-开源2018年源码
    吉特日化MES-日化生产称料基本步骤
    吉特日化MES-日化行业原料仓库所见问题汇总
    网易数据中台建设实践
    【杭研大咖说】温正湖:6年,从不会写SQL到数据库专家
    从自动化到智能化,网易杭研的AIOps探索与实践
    特征选择之经典三刀
    【杭研大咖说】王新勇:死磕云原生的“懒人”
  • 原文地址:https://www.cnblogs.com/aikongmeng/p/3697363.html
Copyright © 2011-2022 走看看