andorid 建造者模式

建造者模式会让你的代码整洁,工厂化。

private void openFilePicker() { 
     new MaterialFilePicker()         
             .withSupportFragment(this)   
             .withRequestCode(1)            
             .withFilter(Pattern.compile(".*\\.txt$")) // Filtering files and directories by file name using regexp           
             .withFilterDirectories(false)             // Set directories filterable (false by default)
             .withHiddenFiles(true)                    // Show hidden files and folders   
             .withRootPath(Environment.getRootDirectory().getPath())        
             .start();         
     }

这就是建造者模式基本式样
那么在 MaterialFilePicker 类里面。一些类是这样的方法就是添加条件

public MaterialFilePicker withSelectType(int selectType) { 
   mSelectType = selectType;  
    return this;
}
.....

而往往最后一个 start()方法则是执行关键。

public void start() {  
    if (mActivity == null && mFragment == null && mSupportFragment == null) {
        throw new RuntimeException("You must pass Activity/Fragment by calling withActivity/withFragment/withSupportFragment method"); 
      }    if (mRequestCode == null) {        
              throw new RuntimeException("You must pass request code by calling withRequestCode method");  
      }    Intent intent = getIntent();   
           if (mActivity != null) {       
                   mActivity.startActivityForResult(intent, mRequestCode);  
      } else if (mFragment != null) {   
           mFragment.startActivityForResult(intent, mRequestCode);  
      } else {     
           mSupportFragment.startActivityForResult(intent, mRequestCode);   
   }
}

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 158,724评论 24 689
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,121评论 1 15
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 122,096评论 17 134
  • 已经很久没有写东西,都不知道自己想要表达些什么,将原来的事情放下以后,突然就觉得整个生活都是空落落的,因为好...
    南国雪阅读 75评论 0 1
  • 在iOS中该如何获取磁盘总容量和剩余容量?如果没有在项目中碰到这个问题,估计没有什么人会去了解这个知识点。正...
    我在鄱阳湖边阅读 1,609评论 0 3