zoukankan      html  css  js  c++  java
  • 设计模式 单一职责原则

    思维导图在 设计模式

    现在有这样的代码,表示AB喜欢乒乓球

    class Exercise{
      public void hobby(String name){
          Console.WriteLine(name+"喜欢乒乓球");
      }
    }
    class Program{
      static void Main(string[] args){
          Exercise exercise = new Exercise();
          exercise.hobby("A");
          exercise.hobby("B");
      }
    }

    现在来了D,他喜欢游泳,按照单一职责原则,Exercise应该分为乒乓球和游泳两个类。一种对应一个。

    class Ping{
      public void hobby(String name){
          Console.WriteLine(name+"喜欢乒乓球");
      }
    }
    class Swim{
      public void hobby(String name){
          Console.WriteLine(name+"喜欢游泳");
      }
    }

    懒癌发作的我觉得这个改动太大了。还不如..反正就一个人喜欢游泳不是吗?

    class Ping{
      public void hobby(String name){
         if("D".Equals(name)) Console.WriteLine(name+ "喜欢游泳");
         else Console.WriteLine(name+"喜欢乒乓球");
      }
    }

    现在问题来了,万一其中的某人兴趣改了,或者游泳再细分为蛙游,蝶泳呢。。代码维护就很麻烦。

    或者来一个不怎么严重违反单一原则的办法。

    class Exercise{
        public void hobby1(String name){
            Console.WriteLine(name+"喜欢乒乓球");
        }
        public void hobby2(String name){
           Console.WriteLine(name + "喜欢乒乓球");
        }
    }
  • 相关阅读:
    Python: 通过 pip 安装第三方包后依然不能 import
    jar命令
    vim中删除^M
    Linux 非互联网环境安装依赖包
    安装rpm包时提示错误:依赖检测失败的解决方法
    python3.5安装
    yum配置安装 及报错
    统计数组元素出现的次数
    插入法排序
    选择法排序
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/9372973.html
Copyright © 2011-2022 走看看