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

    简单工厂主要用以替代类的创建,通常我们是在类A中去new 类B,如果此时B具有较多的可能性,则需要将A、B解耦。如下图所示:

    如本例中,报表保存方式可以是pdf、csv,因此我们将其接口抽象出来,并以一个工厂方法对外提供。

    • 抽象接口ReportSave
    public interface ReportSave {
        public void save();
    }
    • 实现类ReportPdfSave
    public class ReportPdfSave implements ReportSave {
    
        @Override
        public void save() {
            System.out.println("File saved as pdf");
        }
    }
    • 实现类ReportCsvSave
    public class ReportCsvSave implements ReportSave {
    
        @Override
        public void save() {
            System.out.println("File saved as csv");
        }
    }
    • 工厂类ReportSaveFatory
    public class ReportSaveFatory {
        public ReportSave getSave(String type){
            
            if(null == type){
                return null;
            }
            
            if(type.equals("PDF")){
                return new ReportPdfSave();
            }else if(type.equals("CSV")){
                return new ReportCsvSave();
            }else{
                return new ReportPdfSave();
            }
        }
    }
  • 相关阅读:
    冒泡排序
    快速排序
    玩转git版本控制软件
    django内容总结
    ajax图片上传功能
    随机验证码
    制作博客系统
    django自带的用户认证和form表单功能
    COOKIE 与 SESSION
    Ajax知识
  • 原文地址:https://www.cnblogs.com/Fredric-2013/p/4570906.html
Copyright © 2011-2022 走看看