设计原则之单一职责原则

前言:暑假匆匆过了一边Java的设计模式,现在来系统总结一下。毕竟写Java程序不懂设计模式根本就是瞎扯,并且懂了设计模式学一些框架也更加快嘛,要知道里面可是设计模式满天飞。今天就来聊聊最简单的单一职责原则吧
1、单一职责原则是什么

这个根据字面意思就可以知道,就是一个类尽量不要有很多方法,尽量降低类的复杂程度。

2、单一职责的应用

其实我们经常说的MVC就是单一职责最好的应用。如果我们不采用单一职责原则,我们在进行用户注册登录的时候只有一个User类,里面的代码会大致如下

public class User{
    private String username;
    private String password;
    // 连接数据库
    public Connection getConnection(){
        ...
    }
    // 注册是具体实现
    public Boolean Registe(){
        ...
    }
    // 登录的具体实现
    public Boolean Login(){
        ...
    }
    // 查询是否存在某个用户
    public Boolean findById(){
        ...
    }
    //关闭数据库
    public void close(){
        ...
    }

    public String getUsername() {
        return this.username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return this.password;
    }
    public void setPassword(String password) {
        this.password= password;
    }
}

当我们需要添加其他功能的时候,会导致这个User类非常的大,我们后面的维护和可读性都会很困难。如果我们通过MVC的方式来实现,大概会是下面这样


连接数据库的类

public class DatabaseConnection{
    //连接数据库
    public Connection getConnection() {
        ...
    }
    //关闭数据库
    public void close() {
        ...
    }
}



用户的类

public class User{
    private String username;
    private String password;
    public String getUsername() {
        return this.username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return this.password;
    }
    public void setPassword(String password) {
        this.password= password;
    }
}



操作数据库的类

public class DAOUser{
    public Boolean Login() {
        ...
    }
    public Boolean Registe() {
        ...
    }
    public Boolean findById() {
        ...
    }
}
3、单一职责的优势

1、降低类的复杂性
2、提高类的可读性
3、提高代码的可维护性和复用性
4、降低应变更引起的风险

4、总结

单一职责设计原则看起来很简单,但其实用起来是很难的,很多时候我们不太清除具体某个方法应该放在哪个类中,因此还是需要我们在项目中去成长,在实践中去总结。
(完) 2017/11/17 23:56

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值