zoukankan      html  css  js  c++  java
  • 第三话-单一职责原则

    

    写在前面:本人近期在看《大话设计模式》这本书。书里是用C#解说的实例。如今写心得笔记与大家分享,就试着写一个JAVA版的。样例还是书里的样例。只是是Java语言实现的。后面也会给出本人的一些理解建议。谢谢《大话设计模式》的作者。

    一、什么是单一职责原则?

    今天要说的是单一职责原则。这个应该比較好理解。所谓单一职责。就一个类而言,应该仅有一个引起它变化的原因。也就是说它仅仅做简单的一件事,仅仅是做好自己的本质工作其它尽量不去參与。

    在我们设计类的时候,我们往往还没有好好思考就開始编码了。这是个不好的习惯。

    磨刀不误砍柴工。我们应该把业务逻辑理清。把交互的代码和逻辑代码分离开,然后再把逻辑代码依据分工分离开。前提是他须要一个类,也就是有一个能引起这一部分代码变化的原因。那这部分代码就能够单独成类。因为大部分ITer(IT人士)開始接触编程时用的是C语言这样的过程化的程序设计,又因为,我们人类习惯按步骤按方法去做事,所以编程时首先想到的就是方法,而不是类。在面向对象的语言中类是程序的最小单位。所以我们要锻炼自己的抽象思想,万物皆类。不管抽象的事物还是详细的事物都能够是一个类。

    设计模式。事实上不是什么非常高深的东西。仅仅是我们没有去总结而已。有过多年开发经验的老鸟们去看设计模式。他会笑而不语。由于这些他们差点儿都用过。仅仅是没有给出一个名字而已。

    设计模式,事实上真的是非常高深的东西。由于从哲学的角度(不要骂我。我仅仅是宣扬一下马克思的课有点用)来看,它不仅适用于编程。还适用于生活。就像我们ITer。谁都知道,假设我们立志在IT行业奋下去,一定要找一个方向,要做好我们的本质,不能今年做程序猿,明年做销售吧。

    不然你什么都做不好。还有就是朝着一个方向走,就像android,ios, wp, javaweb, .net等等。太多了你要是什么都去搞。十年你也是什么都会什么都不精。假设你仅仅搞android。一天一个知识点,一天一个小项目,7天一个大点的项目。一年之后,你绝对是大牛。

    二、代码实例
    闲话少说,上实例(手机拍照)。

    一般的设计:

    Phone.java

    public class Phone {
     private float width;
     private float height;
     private float thick;

     public void takePhoto() {
      System.out.println("Take a photo");
     }

     public void makeCall() {
      System.out.println("Make a call");
     }

     public void sendMessage() {
      System.out.println("Send a message");
     }

     public void playMusic() {
      System.out.println("Play a music");
     }
    }

    事实上能够这样做:

    Camera.java

    public interface Camera {
     public void takePhoto();
    }

    Mp3.java

    public interface Mp3 {
     public void playMusic();
    }

    Phone.java

    public class Phone implements Camera, Mp3 {
     private float width;
     private float height;
     private float thick;

     public void makeCall() {
      System.out.println("Make a call");
     }

     public void sendMessage() {
      System.out.println("Send a message");
     }

     public void playMusic() {
      // TODO Auto-generated method stub
      System.out.println("Play a music");
     }

     public void takePhoto() {
      // TODO Auto-generated method stub
      System.out.println("Take a photo");
     }
    }

    三、小结

    虽说单一职责原则非常使代码非常清晰,能够解决一个类过于庞大的问题,可是真的不能乱用。

    用的过分了,可能会使你的程序分崩离析。这样就得不偿失了。一句话,面向对象面向对象。找个对象面向面向就会了。

    别雪没对象,咱能够去new啊。要多少有多少。


  • 相关阅读:
    CASE WHEN用法
    BOS消息对话框
    BOS自定义等待窗口
    自定义F7
    BOS接口开发
    BOS开发-增删改查
    金蝶BOS工作流
    金蝶KDTable常用代码
    BOS开发常用代码
    Jenkins2 入门到精通(学习资料)
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5116178.html
Copyright © 2011-2022 走看看