Rumah > Java > javaTutorial > teks badan

Bagaimana untuk melaksanakan prinsip tanggungjawab tunggal corak reka bentuk java

WBOY
Lepaskan: 2023-04-18 15:58:03
ke hadapan
1434 orang telah melayarinya

Prinsip Tanggungjawab Tunggal, dirujuk sebagai SRP.

Definisi:

Jangan sekali-kali ada lebih daripada satu sebab untuk kelas berubah.

Perlu ada dan hanya satu sebab untuk kelas berubah.

Kadangkala, pembangun menghadapi beberapa masalah semasa mereka bentuk antara muka Contohnya, atribut pengguna dan gelagat pengguna diisytiharkan dalam antara muka. Ini menyebabkan objek perniagaan dan logik perniagaan disatukan, yang mengakibatkan antara muka mempunyai dua tanggungjawab Tanggungjawab antara muka tidak jelas Menurut definisi SRP, ia melanggar prinsip tanggungjawab tunggal antara muka.

Berikut ialah contoh:

package com.loulijun.chapter1;     public interface Itutu {      //身高      void setShengao(double height);      double getShengao();      //体重      void setTizhong(double weight);      double getTizhong();      //吃饭      boolean chiFan(boolean hungry);      //上网      boolean shangWang(boolean silly);  }
Salin selepas log masuk

Contoh di atas mempunyai masalah ini Ketinggian dan berat adalah objek perniagaan, dan kaedah yang sepadan bertanggungjawab terutamanya untuk atribut pengguna. Makan dan melayari Internet adalah logik perniagaan yang sepadan, yang bertanggungjawab terutamanya untuk tingkah laku pengguna. Tetapi ini akan memberi orang perasaan tidak tahu apa yang dilakukan antara muka ini, dan tanggungjawabnya tidak jelas, yang juga akan menyebabkan pelbagai masalah semasa penyelenggaraan kemudian.

Penyelesaian: Prinsip tanggungjawab tunggal, hanya uraikan antara muka ini kepada dua antara muka dengan tanggungjawab yang berbeza

ItutuBO.java: Bertanggungjawab untuk atribut tutu (Tutu, jika ia adalah nama peribadi)

package com.loulijun.chapter1;     /**   * BO:Bussiness Object,业务对象   * 负责用户的属性   * @author Administrator   *   */ public interface ItutuBO {      //身高      void setShengao(double height);      double getShengao();      //体重      void setTizhong(double weight);      double getTizhong();  }
Salin selepas log masuk

ItutuBL.java: Bertanggungjawab terhadap tingkah laku Tutu

package com.loulijun.chapter1;  /**   * BL:Business Logic,业务逻辑   * 负责用户的行为   * @author Administrator   *   */ public interface ItutuBL {      //吃饭      boolean chiFan(boolean hungry);      //上网      boolean shangWang(boolean silly);  }
Salin selepas log masuk

Ini mencapai tanggungjawab tunggal antara muka. Kemudian apabila melaksanakan antara muka, anda perlu mempunyai dua kelas yang berbeza

TutuBO.java

package com.loulijun.chapter1;     public class TutuBO implements ItutuBO {      private double height;      private double weight;      @Override     public double getShengao() {                 return height;      }         @Override     public double getTizhong() {          return weight;      }         @Override     public void setShengao(double height) {          this.height = height;      }         @Override     public void setTizhong(double weight) {          this.weight = weight;      }     }
Salin selepas log masuk

TutuBL.java

package com.loulijun.chapter1;     public class TutuBL implements ItutuBL {         @Override     public boolean chiFan(boolean hungry) {          if(hungry)          {              System.out.println("去吃火锅...");              return true;          }          return false;      }         @Override     public boolean shangWang(boolean silly) {          if(silly)          {              System.out.println("好无聊啊,上会网...");              return true;          }          return false;      }     }
Salin selepas log masuk

Ini jelas apabila anda perlukan untuk mengubah suai atribut pengguna, anda hanya perlu mengubah suai antara muka ItutuBO Ia hanya akan menjejaskan kelas TutuBO dan bukan kelas lain.

Jadi apakah kepentingan prinsip tanggungjawab tunggal?

  1. Kurangkan kerumitan kelas dan tentukan tanggungjawab dengan jelas

  2. Tingkatkan kebolehbacaan

  3. Tingkatkan kebolehselenggaraan

  4. Kurangkan risiko yang disebabkan oleh perubahan, yang sangat membantu untuk kebolehskalaan dan kebolehselenggaraan sistem

Walau bagaimanapun, terdapat masalah dengan menggunakan prinsip tanggungjawab tunggal. Tidak ada piawaian yang jelas untuk membahagikan "tanggungjawab". Oleh itu, apabila menggunakan tanggungjawab ini, keadaan tertentu mesti dianalisis. Cadangannya ialah antara muka mesti mengguna pakai prinsip tanggungjawab tunggal dan melaksanakan prinsip tanggungjawab tunggal sebanyak mungkin dalam reka bentuk kelas Satu-satunya sebab ialah kelas berubah.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan prinsip tanggungjawab tunggal corak reka bentuk java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan