Android的设计模式

总述

工厂设计模式



public class test {

       public static void main(String[] args) {

              Location position= new LocationFactory().getInstance("xiaomi");

              position.getPosition();

              position.getCityName(10, 20);

       }

}



class LocationFactory{

       public static Location getInstance(String type){

              if("baidu".equals(type)){

                     return new BaiduLocation();

              }else {

                     return new XiaoMiLocation();

              }

       }

}

class BaiduLocation implements Location{

       @Override

       public void getPosition() {

              // TODO Auto-generated method stub

              System.out.println("通过百度定位获取到当前的经纬度是XXXXX");

       }

       @Override

       public void getCityName(long lat, long lng) {

              // TODO Auto-generated method stub

              System.out.println("通过百度定位获取到当前的城市是XXXXX");

       }

}

class XiaoMiLocation implements Location{

       @Override

       public void getPosition() {

              // TODO Auto-generated method stub

              System.out.println("通过小米定位获取到当前的经纬度是XXXXX");

       }

       @Override

       public void getCityName(long lat, long lng) {

              // TODO Auto-generated method stub

              System.out.println("通过小米定位获取到当前的城市是XXXXX");

       }

}

/*接口的好处在于可以不通过上下级关系来分享一些共有的方法*/
interface Location{

       public void getPosition();

       public void getCityName(long lat,long lng);

}

观察者模式

通过实现接口,然后实现接口中的方法,被观察者通过notify来唤醒观察者

参照http://blog.csdn.net/sinat_28324227/article/details/49866147

代理模式

接口中的方法为代理者和被代理者都要做的方法

代码重构

//若一个方法的长度过长考虑分解,分解是注意提取带有返回值的方法来分解代码

1.好的代码从变量名就能看得出代码清晰

2.绝大多数情况下,函数应该放在它所使用的数据的所属对象A内,然后在另一个类中写一个得到A中数据的方法调用

3.想清楚代码要做的事,例如想计算不同的电影租赁价格不同,应该给Movie传类型,给Rental传租赁时长,而不应该给Movie传租赁时长

4.运用多态来代替switch中判断同属于一个对象,但是存在区别的语句跳转,不同的case下创建不同的对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值