Java面向对象设计原则4——单一职责原则

在我们学习面向对象编程的时候,总会出现一些问题,好比以前刚刚写好的代码,上线测试可以、正常运行,突然有一天说要加一个功能,改完之后,发现以前正常运行的功能不能用了,类似这样的问题有好多好多,为了避免类似的事件发生,程序员一定要根据这些原则去开发程序。

我们一个一个来学习,今天来学习7大面向对象设计原则之一,单一职责原则。

单一职责原则:

单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than one reason for a class to change)。

 

这个原则可能比起前面说的那三个要好理解的多。它想向我们表述的是这样的,就是代码的拆分。

在我们最初学习代码的时候,我们会将很多代码都写在一个方法中去,我可以简单写一个错误的,错误的!!!

//伪代码
public void motherTodayDoing(){
    
    //早上七点半起床
    //做早饭
    //吃早饭
    //上街买菜
    //做中午饭
    //吃中午饭
    //睡午觉
    //逛街
    //买菜
    //做晚饭
    //看电视
    //睡觉
}

你看看,一个类里面写了无数的代码,这要是改起来,能累死个人儿。

 

单一职责的作用:

单一职责的作用就来了,将这些代码进行模块化处理,这样可以降低代码耦合度,二是能够将代码变的整洁,不像上面那样。

三是维护的时候可以好改一些,如果就像上面那样写代码,你的领导得灭了你。

单一职责使用:

还是上面的代码,我们稍加修改。

//伪代码
public void motherTodayDoing(){
    
    休息();
    做饭(菜);
    eat(8);
}

public void 休息(int hour){
    //睡多久起床
    sleep(hour);
}

public void 做饭(菜 菜){
    //做菜
    做菜(菜);
}

public void eat(int time){
    if(time == 8 ){
        吃早饭();
    }else if(time == 12){
        吃午饭();
    }else{
        吃晚饭();
    }
}

是不是,最起码最上面的那段代码强多了, 能看了,当然,这个还能够细化,可以定义接口,去实现接口,这样会更好。

 

今天就暂时说到这里,大家好好在代码中一定要好好练习。

你可能感兴趣的:(Java_7种设计原则,Java,单一职责原则)