android与设计模式的使用--三方sdk封装

  面试常常遇到各种设计模式,而且网上也是有很多java设计模式栗子,但是设计模式实际应用呢?网上很多都没讲清楚,这里就进行一个总结。

什么是垃圾代码?

  垃圾代码表征:业务代码与技术代码耦合; 主业务和增值业务代码职责耦合;多余的依赖关系;

1.业务代码与技术代码耦合(出现问题:如果多处使用,以后更换xutils框架或者升级,就要大量修改,查找该代码)

import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.x;

public class LogoActivity extends Activity {
    @BindView(R.id.init_setting_tv)
    TextView mInitSettingTv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_logo);
        mInitSettingTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                RequestParams params = new RequestParams(url);
                params.setSaveFilePath(dataPath);
                params.setAutoRename(true);
                x.http().get(params, new Callback.ProgressCallback<File>() {
                    @Override
                    public void onSuccess(File result) {
                        Toast.makeText(LogoActivity.this,"成功",Toast.LENGTH_LONG).show();
                    }
                    @Override
                    public void onError(Throwable ex, boolean isOnCallback) {}
                    @Override
                    public void onCancelled(CancelledException cex) {}
                    @Override
                    public void onFinished() {}
                    @Override
                    public void onWaiting() {}
                    @Override
                    public void onStarted() {}
                    @Override
                    public void onLoading(long total, long current, boolean isDownloading) {
                        System.out.println("下载开始" + current + "大小:" + total);
                    }
                });
            }
        });


    }
}
}

门面设计

定义:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,门面模式提供了一个高层次的接口,使得子系统更易于使用;

目的:1.门面对象是通往外界子系统内部的唯一通道;2.通过门面对象降低程序耦合;

举例子:商品的购买栗子

人直接去工厂就会有各种路线记录,就会很复杂。而通过商店这个就能直接实现购买所有东西,商店就是唯一通道,使人这个主要业务逻辑不再复杂。如果说去掉商店不是更简单,那么人与各个工厂都有联系就会显得乱。

类似的代理模式

定义:给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用;

目的:1通过引入代理对象的方式来间接访问目标对象,防止直接访问目标对象给系统带来的不必要的复杂型;2通过代理对象对原有的业务增强。

人-》代购人-》工厂

方法实现

实现效果:

快速切换第三方sdk框架,由于sdk如果有问题,更换其他类似功能sdk,这种模式就非常高效。

代理流程图示:

设计模式有什么用?

帮助我们将应用组织成容易了解,容易维护,具有弹性的结构,建立可维护的系统,要诀在于随时想到系统以后可能需要的变化以及应对变化的原则。

场景:

 

代码demo效果:https://github.com/lshAndroid/FrameworkSdkDesign

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值