zoukankan      html  css  js  c++  java
  • 简单工厂模式SimpleFactory

    简单工厂模式是属于创建型模式,简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

    package com.taobao.design;
    
    /**
     * 简单工厂模式:创建型
     */
    public class SimpleFactory {
        public static void main(String[] args) {
            try {
                MusicFactory.createBox("Pianobox").play();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 生产接口
     */
    interface IMusicBox{
        public void play();
    }
    
    class Pianobox implements IMusicBox{
    
        @Override
        public void play() {
            System.out.println("Pianobox播放");
        }
    }
    
    class ViolinBox implements IMusicBox{
    
        @Override
        public void play() {
            System.out.println("ViolinBox播放");
        }
    }
    /**
     * 工厂类
     */
    class MusicFactory{
        public static IMusicBox createBox(String name) throws Exception{
            return (IMusicBox) Class.forName("com.taobao.design."+name).newInstance();
        }
    }

    简单工厂模式的优点:

    工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。

    简单工厂模式的缺点:

    当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利

  • 相关阅读:
    135. Candy(Array; Greedy)
    69. Sqrt(x) (Divide-and-Conquer)
    109. Convert Sorted List to Binary Search Tree (List; Divide-and-Conquer, dfs)
    108.Convert Sorted Array to Binary Search Tree(Array; Divide-and-Conquer, dfs)
    34. Search for a Range (Array; Divide-and-Conquer)
    35. Search Insert Position (Array; Divide-and-Conquer)
    82. Remove Duplicates from Sorted List II (List)
    python dict list tuple
    python unix时间戳
    字符串哈希函数
  • 原文地址:https://www.cnblogs.com/hnhcc39/p/2604568.html
Copyright © 2011-2022 走看看