Reka bentuk tahap rendah dan Prinsip PADAT

Susan Sarandon
Lepaskan: 2024-10-02 06:18:01
asal
514 orang telah melayarinya

Reka Bentuk Tahap Rendah (LLD) ialah fasa kritikal dalam pembangunan perisian yang merapatkan jurang antara reka bentuk peringkat tinggi dan pelaksanaan sebenar. Walaupun reka bentuk peringkat tinggi memfokuskan pada pelan tindakan seni bina, LLD memperkatakan cara setiap komponen, kelas atau fungsi dilaksanakan untuk memenuhi keperluan keseluruhan sistem.

Dalam istilah yang lebih mudah, LLD melibatkan mereka bentuk kelas, kaedah, antara muka dan interaksi antara mereka, memastikan kod itu cekap, boleh diselenggara dan berskala. Ia merupakan kemahiran penting untuk jurutera perisian, terutamanya apabila membina sistem yang perlu teguh, boleh diguna semula dan mudah diubah suai dari semasa ke semasa.

Blog ini akan memperkenalkan anda kepada konsep, prinsip dan teknik utama yang terlibat dalam reka bentuk peringkat rendah dan menunjukkan cara ia boleh membantu anda menulis kod yang lebih baik dan boleh diselenggara.

Persoalan pertama yang terlintas di fikiran kita ialah:

Mengapa Reka Bentuk Aras Rendah Penting?

  1. Kebolehselenggaraan: Reka bentuk yang difikirkan dengan baik menjadikannya lebih mudah untuk mengekalkan, melanjutkan dan menyahpepijat kod. Reka bentuk yang buruk membawa kepada hutang teknikal, menjadikan perubahan masa depan mahal.
  2. Skalabiliti: LLD yang baik memastikan kod anda boleh skala, dari segi prestasi dan dalam menyokong ciri baharu semasa sistem berkembang.
  3. Kebolehgunaan semula: Komponen yang direka bentuk dengan baik boleh digunakan semula merentasi bahagian sistem yang berlainan atau dalam projek yang sama sekali berbeza.
  4. Kejelasan: Dengan reka bentuk yang jelas, jurutera dapat memahami cara pelbagai bahagian sistem sesuai bersama, menjadikan kerjasama lebih mudah.

Untuk merapatkan jurang antara konsep LLD dan kod sebenar, mari kita pecahkan proses mereka bentuk rajah peringkat rendah melalui langkah berikut:

Langkah 1:Prinsip Berorientasikan Objek
Langkah 2: Prinsip PADAT
Langkah 3: Reka Bentuk Corak

Prinsip berorientasikan objek

Low level design and SOLID Principles
Konsep pengaturcaraan berorientasikan objek 4 tunjang mesti ada untuk mula belajar mereka bentuk peringkat rendah. Saya telah pun membincangkan konsep ini dalam blog pembayaran ringkas

Prinsip PADAT

Low level design and SOLID Principles

S: Prinsip Tanggungjawab Tunggal (SRP)

  • Setiap unit kod hendaklah mempunyai satu tanggungjawab sahaja.
  • Unit boleh menjadi kelas, modul, fungsi atau komponen.
  • Mengekalkan kod modular dan mengurangkan gandingan yang ketat.

Contoh: Bayangkan kelas yang mengendalikan kedua-dua pengesahan pengguna dan pengelogan. Jika kita perlu mengubah cara pengelogan berfungsi, kita akhirnya akan mengubah suai kelas pengesahan juga. Ini melanggar SRP. Sebaliknya, kita harus mempunyai dua kelas berasingan: satu untuk pengesahan pengguna dan satu lagi untuk pengelogan, jadi setiap kelas mempunyai satu tanggungjawab.

O: Prinsip Terbuka/Tertutup (OCP)

  • Unit kod hendaklah dibuka untuk sambungan tetapi ditutup untuk pengubahsuaian.
  • Lanjutkan fungsi dengan menambahkan kod baharu, bukan mengubah suai kod sedia ada.
  • Berguna dalam sistem berasaskan komponen seperti bahagian hadapan React.

Contoh: Pertimbangkan sistem pemprosesan pembayaran yang mengendalikan pembayaran melalui kad kredit. Jika anda perlu menambah sokongan untuk PayPal, dan bukannya mengubah suai kod sedia ada, anda harus melanjutkannya dengan menambah kelas baharu untuk pembayaran PayPal. Ini memastikan sistem sedia ada kekal stabil sambil membenarkan fungsi baharu ditambah.

L: Prinsip Penggantian Liskov (LSP)

  • Subkelas hendaklah boleh digantikan untuk kelas asasnya.
  • Fungsi dalam kelas asas seharusnya boleh digunakan oleh semua subkelas.
  • Jika subkelas tidak boleh menggunakan fungsi kelas asas, ia tidak sepatutnya berada dalam kelas asas.

Contoh: Jika kita mempunyai kelas Burung yang mempunyai kaedah fly(), dan kita mencipta subkelas Penguin, yang tidak boleh terbang, ini melanggar LSP. Kelas Penguin tidak seharusnya mewarisi fly() kerana ia mengubah tingkah laku yang diharapkan. Sebaliknya, kelas Burung harus difaktorkan semula untuk mengendalikan burung yang boleh dan tidak boleh terbang secara berbeza.

I: Prinsip Pengasingan Antara Muka (ISP)

  • Sediakan berbilang antara muka khusus dan bukannya beberapa antara muka umum.
  • Pelanggan tidak seharusnya bergantung pada kaedah yang mereka tidak gunakan.

Contoh: Katakan kita mempunyai antara muka Haiwan dengan kaedah fly(), swim(), dan walk(). Anjing kelas yang melaksanakan Animal akan dipaksa untuk menentukan fly(), yang tidak diperlukannya. Untuk mematuhi ISP, kita harus membahagikan antara muka Haiwan kepada antara muka yang lebih kecil seperti Boleh Terbang, Boleh Renang dan Boleh Berjalan untuk mengelakkan memaksa kaedah yang tidak berkaitan pada kelas

D: 依存性反転原則 (DIP)

  • 具象クラスではなく抽象化に依存します。
  • 抽象化を使用して、システムの部分間の依存関係を分離します。
  • インターフェイスまたは抽象化を使用するコード単位間の直接呼び出しは避けてください。

例: 電子商取引アプリケーションで、チェックアウト プロセス (高レベル モジュール) が PayPal などの特定の支払いゲートウェイ (低レベル モジュール) に直接依存している場合、支払いゲートウェイを変更するには、チェックアウト プロセスを変更する必要があります。 PaymentProcessor インターフェースなどの抽象化を導入することで、PayPal やその他のサービスの詳細を知らなくても、チェックアウト プロセスはあらゆる支払い方法で機能します。

デザインパターン

設計パターンは、ソフトウェア設計で発生する一般的な問題に対する実証済みの解決策です。これらは、開発者が特定の設計上の問題を効率的かつ体系的に解決するために従うことができるベスト プラクティスです。車輪の再発明ではなく、デザイン パターンは、繰り返し発生する問題を解決するための標準的なアプローチを提供します。

デザインパターンは次の 3 つのタイプに分類できます。

  1. 作成パターン: オブジェクトの作成を処理します

    • 工場設計パターン
    • 抽象的な工場設計パターン
    • ビルダーデザインパターン
    • プロトタイプのデザインパターン
    • シングルトンデザインパターン
  2. 構造パターン: オブジェクトの構成と関係を扱う

    • アダプターパターン
    • ブリッジパターン
    • 複合パターン
    • デコレータパターン
    • ファサードパターン
    • フライウェイトパターン
    • プロキシ パターン
  3. 行動パターン: オブジェクトの相互作用と責任に対処する

    • 責任連鎖パターン
    • コマンドパターン
    • インタープリターパターン
    • 仲介者のパターン
    • 思い出のパターン
    • オブザーバーパターン
    • 状態パターン
    • 戦略パターン
    • テンプレートメソッドパターン
    • 訪問者のパターン

SOLID 原則を探求して基礎を築き、デザイン パターンの広大な状況を紹介したので、さらに深く掘り下げる準備が整いました。今後のシリーズでは、実用的な例と実際のシナリオを使用して、各設計パターンを詳しく説明します。設計を始めたばかりの場合でも、スキルを磨きたいと考えている場合でも、これらのパターンは、よりクリーンでスケーラブルなコードを作成するのに役立ちます。最初のデザイン パターンを段階的に解明する次回のブログをお楽しみに!

ここまで読み進めたら、忘れずに「いいね!」を押して、質問や意見があれば下にコメントを残してください。あなたのフィードバックは私にとってとても大切なものです。ぜひお聞かせください!

Atas ialah kandungan terperinci Reka bentuk tahap rendah dan Prinsip PADAT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan