• 设计模式之单一职责原则


    一.单一职责(Single Responsibility Principle,简称SRP ): 一个类只负责一项职责

    原始定义:There should never be more than one reason for a class to change。

    官方翻译:应该有且仅有一个原因引起类的变更。简单点说,一个类,最好只负责一件事,只有一个引起它变化的原因。

    错误示范:

    public interface IPhotograph {
        void photograph();
    }
    
    public interface IPlayMusic {
        void playMusic();
    }
    //一个类负责两个功能
    public class MobilePhone implements IPhotograph, IPlayMusic {
    
        @Override
        public void playMusic() {
            System.out.println("play music");
        }
    
        @Override
        public void photograph() {
            System.out.println("take photo");
        }
    
    }
    
    public class SRP {
        //拍照和播放音乐两个当中的任何一个功能的改动都要修改手机类,因为现在的手机既负责拍照又负责播放音乐
        public static void main(String[] args) {
            MobilePhone phone = new MobilePhone();
            IPhotograph photographer = phone;//是照相机
            IPlayMusic player = phone;//是音乐播放器
            photographer.photograph();
            player.playMusic();
        }
    }

    正确做法:

    public interface IPhotograph {
        void photograph();
    }
    
    public interface IPlayMusic {
        void playMusic();
    }
    //一个类负责一个功能
    public class MusicPlayer implements IPlayMusic{
        @Override
        public void playMusic() {
            System.out.println("play music");
        }
    
    }
    
    //一个类负责一个功能
    public class Carmera implements IPhotograph {
        @Override
        public void photograph() {
            System.out.println("take photo");
        }
    
    }
    
    public class SRP {
        //拍照和播放音乐两个类各司其职
        public static void main(String[] args) {
            IPhotograph photographer = new Carmera();//是照相机
            IPlayMusic player = new MusicPlayer();//是音乐播放器
            photographer.photograph();
            player.playMusic();
        }
    }
  • 相关阅读:
    flask-模型
    git配置
    windows 下mysql安装
    Python安装
    django部署(gunicorn版本)
    【草稿】 PYTHON 基本知识
    【草稿】简单的python脚本监控ORACLE数据并邮件通知,WIN操作系统下
    orcle linux怎么登陆?全局表空间统计信息怎么查看?表空间内表的统计信息怎么看?数据表的字段怎么查?
    计算机基础篇
    构建乘积数组
  • 原文地址:https://www.cnblogs.com/o-andy-o/p/10311958.html
Copyright © 2020-2023  润新知