在代码中找设计原则

1

写代码中不要去想什么SOLID原则 ,正确的做法是在写代码的过程中总结出原则(多写代码)
对于TripManager类,我们只需要让它开始和结束两个动作,不要让这个类过于复杂,过于耦合,不利于扩展,根据力度来分配。结束后,我们还需要上传数据,这个方法就不要放在TripManager中来写了。

2

职责细分,该是谁的就是谁的,单一职责

public class TripTransfer {
//结束时上传和广播有网络的时候上传
    public void uploadData() {
        
    }
}

3

TripTracker典型的外观类,它不用管需要用什么坐标系、数据来源,因为这些都是在子系统中实现的,它只负责实例化和产生结果。

public class GpsTracker {

    private onGpsChangedListener mlistener;
    private boolean mUserGps;
    private boolean mUseNetwork;
    private int type;

    private GpsTracker(Builder builder) {
        type = builder.type;
    }

    public void startLocation() {
        

    }
    .....有省略...........

在startLocation()里,我们需要知道是用百度地图还是高德地图,如果我们在GpsTracker 类中声明了使用百度地图,当需求改变是,我们又要改变这个类,让发生变化交给别人去做,自己这个类尽量不发生变化。在这里我们采用工厂方法。

抽象方法
public abstract class LocationTracker {
    private boolean mUserGps;
    private boolean mUseNetwork;

    public LocationTracker(boolean mUserGps, boolean mUseNetwork) {
        this.mUserGps = mUserGps;
        this.mUseNetwork = mUseNetwork;
    }

    public abstract void startLocation();

    public abstract void stopLocation();

    public interface LocationChangedListener {

        void onLocationChanged(GpsTracker.GpsEntity entity);
    }
}
继承去实现两个方法
public class DefaultLocationTracker extends LocationTracker {

    public DefaultLocationTracker(boolean mUserGps, boolean mUseNetwork) {
        super(mUserGps, mUseNetwork);
    }

    @Override
    public void startLocation() {

    }

    @Override
    public void stopLocation() {

    }
}
 public void startLocation() {
        mTracker = LocationTrackerFactory.newTracker(type);
        mTracker.startLocation();
在factory中去配置
    }

public class LocationTrackerFactory {
    public static LocationTracker newTracker(int type) {
        return null;
    }
}

以上代码中,最能体现出单一原则,一个类负责一件事情
开放封闭原则 里氏替换原则 接口分离原则 依赖倒置原则这四个,别急,慢慢来!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒...
    加油小杜阅读 4,032评论 0 1
  • 转载标注声明:http://www.uml.org.cn/sjms/201211023.asp 目录:[设计模式六...
    Bloo_m阅读 4,048评论 0 7
  • 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 ...
    Jabir_Zhang阅读 3,808评论 0 3
  • 程序设计的6大原则: 单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则 从根本学好,理解为什么要...
    silencefun阅读 7,005评论 1 4
  • 单一职责原则 (SRP) 全称 SRP , Single Responsibility Principle 单一职...
    米莉_L阅读 5,733评论 2 5