美文网首页
外观模式

外观模式

作者: Il_mondo | 来源:发表于2018-06-10 17:11 被阅读3次

    隐藏系统复杂性,向外部提供一个可访问的接口

    public interface DataSource {
        interface Callback<T> {
            void success(T data);
            void error(String message);
        }
    
        void getSimpleData(Callback<String> callback);
    }
    
    public class LocalDataSource implements DataSource {
        @Override
        public void getSimpleData(Callback<String> callback){
            // 从数据库中获取数据
        }
    }
    
    public class RemoteDataSource implements DataSource {
        @Override
        public void getSimpleData(Callback<String> callback){
            // 从网络中获取数据
        }
    }
    
    public class DataRepository implements DataSource{
        private DataSource localDataSource;
        private DataSource remoteDataSource;
    
        @Override
        public void getSimpleData(Callback<String> callback){
            localDataSource.getSimpleData(new Callback<String>(){
                @Override
                public success(String data){
                    if(Strings.isEmpty(data)){
                        remoteDataSource.geSimpleData(callback);
                    } else {
                        callback.success(data)
                    }
                }
                ...
            });
        }
    }
    

    隐藏具体的数据来源,只对外提供获取数据的方法.

    相关文章

      网友评论

          本文标题:外观模式

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