Android的设计模式
16lz
2022-03-31
总述
工厂设计模式
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下创建不同的对象
更多相关文章
- android studio中rendering problems解决方法
- android 利用startActivityForResult()方法得到另一个Activity的
- 高德地图自定义Marker点击时出现的InfoWindow
- 重装Ubuntu13.04后需要做的事情
- andorid 自定义seekbar
- Android(安卓)Google地图那些事
- 【Android】打开/读取文件的方法
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用