设计模式课程 设计模式精讲 3-6 单一职责原则Coding

1    要点讲解

1.1  需要注意

 

2    代码演练

2.1  类的单一职责原则demo

2.2  接口的单一职责原则demo

2.3  方法的单一职责原则demo

 

 

1    要点讲解

1.1  需要注意

1.1.1  实际应用中,类不采用单一职责,接口和方法采用单一职责。
1.1.2  定义:单一职责规定 一个类,接口或者方法,只有一个变化的原因
1.1.3  优点:降低类的复杂性,提高可读性,维护时风险降低
1.1.4  实际应用,受依赖,组合,聚合这些关系影响,同时受控于项目规模,项目周期,技术人员水平,对进度把控等影响。适当的应用单一职责原则。

 

2    代码演练

2.1  类的单一职责原则demo

测试类:

package com.geely.design.principle.singleresponsibility;

public class Test {
    public static void main(String[] args) {
        WalkBird walkBird = new WalkBird();
        walkBird.birdMove("鸵鸟");

        FlyBird flyBird = new FlyBird();
        flyBird.birdMove("大雁");
    }
}

 

实体类1:

package com.geely.design.principle.singleresponsibility;

public class WalkBird {
    public void birdMove(String birdName){
        System.out.println(birdName+"用脚走!");
    }
}

 

实体类2:

package com.geely.design.principle.singleresponsibility;

public class FlyBird {
    public void birdMove(String birdName){
        System.out.println(birdName+"用翅膀飞!");
    }
}

打印日志:

鸵鸟用脚走!
大雁用翅膀飞!

 

2.2  接口的单一职责原则demo

接口1:

package com.geely.design.principle.singleresponsibility;

/**
 * 这个接口和获取内容的接口有先后顺序,只有开始学习,才能获取内容,如果退出学习,就不能在获取内容了,
 * 由于职责不同,所以设计两个接口符合单一职责原则
 */
public interface IcourseAction {
    void beginStudy();
    void quitStudy();
}

 

接口2:

package com.geely.design.principle.singleresponsibility;

/**
 * 注,本接口主要是获取课程的内容
 */
public interface IcourseContent {
    String getCourseText();//获取课程文本内容
    byte[] getCourseVideo();//获取课程的视频
}

 

实体类:

package com.geely.design.principle.singleresponsibility;

public class Course implements IcourseAction,IcourseContent{
    @Override
    public void beginStudy() {

    }

    @Override
    public void quitStudy() {

    }

    @Override
    public String getCourseText() {
        return null;
    }

    @Override
    public byte[] getCourseVideo() {
        return new byte[0];
    }
}

 

2.3  方法的单一职责原则demo

demo:

package com.geely.design.principle.singleresponsibility;

public class Method {
    /**
     * 正确,单一职责原则,修改用户的名称
     * @return
     */
    public String updateUserName(){
        return "";
    }

    /**
     * 正确,单一职责原则,修改用户的密码
     * @return
     */
    public String updateUserPassWord(){
        return "";
    }

    /**
     * 错误,作为对比
     * @return
     */
    public String updateUserInfo(String userId,String gender){
        return " ";
    }
    /**
     * 错误,作为对比
     * @param userId
     * @return
     */
    public String updateUserInfo2(String userId){
        return " ";
    }
}

 

转载于:https://www.cnblogs.com/1446358788-qq/p/10982066.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值