设计模式原则——单一原则

单一职责原则详解
本文深入解析软件设计中的单一职责原则,强调一个类应当只负责一项职责,以确保系统的灵活性和可维护性。通过手机功能的例子,对比了单一职责原则前后代码实现的差异,展示其在需求变更时的优势。

设计模式一共有六大原则:

单一原则、开放封闭原则、接口分离原则、里氏替换原则、最少知识原则、依赖倒置原则。

这篇博客是自己对单一设计原则的一些拙见,有何不对欢迎大家指出。

单一原则:

就一个类而言,应该仅有一个引起它变化的原因。

如何理解这句话?

一个类中只负责一个职责。当我们觉得这个“职责”不符合我们的要求的时候,我们可以随时只替换这个职责。因为类中只有这一个职责,所以并不会影响到其他的职责。

假如,一个类中有两个职责A和B,当A不满足需求需要被修改的时候,B同样的也会受到影响。(这种影响是不可预期)

 

Demo:(手机为例)

手机含有的拍照功能:

public interface MakePhoto {
    // 拍照功能
    public void photo();
}

手机含有的mp3功能:

public interface ListenMusic {
    // 听音乐
    public void play();
}

不遵循单一原则的实现:

/**
 * 实现方式没有遵循单一原则,拍照或者播放音乐需求的改变都会引起整天的变化。
 * 
 * @author tujietg
 *
 */
public class Iphone implements ListenMusic, MakePhoto {

    @Override
    public void photo() {
        System.out.println("手机含有拍照功能");
    }

    @Override
    public void play() {
        System.out.println("手机含有播放功能");
    }

}

遵循单一规则的实现:

拍照功能:

public class PhotoImpl implements MakePhoto {
    @Override
    public void photo() {
        System.out.println("仅仅拍照功能的实现");
    }
}

播放功能:

public class ListenMusicImpl implements ListenMusic {

    @Override
    public void play() {
        System.out.println("播放功能的实现");
    }

}

手机的实现:

public class iphoneModel {
    public static void main(String[] args) {
        // 播放音乐
        ListenMusic listenMusic = new ListenMusicImpl();
        // 拍摄照片
        MakePhoto makePhoto = new PhotoImpl();
        listenMusic.play();
        makePhoto.photo();
    }
}

总结:

从代码中可以看出,采用了单一原则的代码,当播放音乐或者拍摄照片的需求改变的时,两者之间的变化是互不影响。

转载于:https://www.cnblogs.com/tujietg/p/10220075.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值