美文网首页
设计模式——单例模式(饿汉模式)

设计模式——单例模式(饿汉模式)

作者: 大舜_666 | 来源:发表于2017-12-27 09:50 被阅读0次

MyTask类

package com.example.okhttpdemo;

import android.os.Environment;

import java.io.File;

import java.io.IOException;

import java.util.concurrent.TimeUnit;

import okhttp3.Cache;

import okhttp3.CacheControl;

import okhttp3.Call;

import okhttp3.Callback;

import okhttp3.FormBody;

import okhttp3.OkHttpClient;

import okhttp3.Request;

import okhttp3.Response;

/**

* Created by leon on 2017/12/19.

*/

public class MyOkHttp {

private OkHttpClient ok;

private Cache cache;

private long maxSize = 8 * 1024 * 1024 ;

private static MyOkHttp okHttp = new MyOkHttp();

private MyOkHttp(){

//获取手机根目录并在根目录下建一个文件夹:

//Environment是用来管理手机SDCard内存的

File file = new File( Environment.getExternalStorageDirectory() + "/H1706A");

cache = new Cache( file,maxSize );

ok = new OkHttpClient.Builder().cache( cache ).build();

}

public static MyOkHttp getOkHttp(){

return okHttp;

}

//同步get请求:

public String sendGet(String url) throws IOException {

Request request = new Request.Builder().url( url ).build();

Response response = ok.newCall( request ).execute();

String string = response.body().string();

return string;

}

//同步post请求:

public String sendPost(String url, FormBody body) throws IOException {

Request request = new Request.Builder().url( url ).post( body ).build();

Response response = ok.newCall( request ).execute();

String s = response.body().string();

return s;

}

//异步get请求:

public void sendGetAnsy(String url,Callback callback) throws IOException {

Request request = new Request.Builder().url( url ).build();

ok.newCall( request ).enqueue( callback );;

}

//异步post请求:

public void sendPostAnsync(String url,FormBody body,Callback callback){

Request request = new Request.Builder().url( url ).post( body ).build();

ok.newCall( request ).enqueue( callback );

}

//测试缓存:

public String sendCacheGet(String url) throws IOException {

Request request = new Request.Builder().url( url ).cacheControl( new CacheControl.Builder().maxStale( 24*60*60, TimeUnit.DAYS ).build() ).build();

Response response = ok.newCall( request ).execute();

String s = response.body().string();

return s;

}

}

相关文章

  • 单例模式Java篇

    单例设计模式- 饿汉式 单例设计模式 - 懒汉式 单例设计模式 - 懒汉式 - 多线程并发 单例设计模式 - 懒汉...

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • 2018-05-14

    单利设计模式 懒汉式 单例模式 饿汉式 单利模式 懒汉式与饿汉式的区别: 双重锁式 单例模式 (DCL )

  • 单例设计模式

    单例设计模式 单例设计模式介绍 单例设计模式的八种方法2.1 饿汉式(静态常量)2.1.1 实现步骤2.1.2 代...

  • Java单例模式

    1. 实现单例模式 饿汉模式和懒汉模式单例模式根据实例化时机分为饿汉模式和懒汉模式。饿汉模式,是指不等到单例真正使...

  • Singleton Pattern

    单例分为懒汉模式和饿汉模式: 饿汉模式 ...

  • java的单例模式

    饿汉单例模式 懒汉单例模式

  • 单例模式

    概念 java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式模式,饿汉式模式、登记式单例三种。单例模式有以...

  • 单例模式的八种写法比较

    单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到 饿汉式 ...

  • 单例模式的八种写法比较

    单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到 饿汉式 ...

网友评论

      本文标题:设计模式——单例模式(饿汉模式)

      本文链接:https://www.haomeiwen.com/subject/pzkzwxtx.html