cari

常见设计原则实例详解

Jun 23, 2017 pm 02:28 PM
pada dasarnyaGambaran keseluruhanreka bentukperisian

设计原则构成了设计模式赖以构建的基础。通过遵循经过验证的设计原则,自己的代码会变得更加灵活、更加能够适应变化,而且可维护性更佳。

常见设计原则

  • 简约原则(KISS)
    KISS原则的目标就是让代码保持简洁但不要过于简陋,从而避免引入任何不必要但复杂度。

  • 不要重复自己(DRY)
    BRY原则但目的是通过将公用但部分抽离出来放在一个单独的地方,从而避免重复系统中的任何部分。当然避免重复的不仅仅是代码,还包括业务逻辑。

  • 讲述而不要询问(Tell,Don‘t Ask)
    这个原则要求应该告诉对象您希望它们执行什么动作,而不是询问有关对象状态的问题然后您自己决定希望执行什么动作。这样有助于匹配责任并避免类之间的紧密耦合。

  • 您不需要它(YAGNI)
    该原则指的是只需要将应用程序必须的功能包含进来,而不要试图添加任何其他您认为可能需要的功能。

  • 分离关注点(SoC)
    SoC这一过程将软件分解为多项不同的功能,每项功能封装了可供其他类使用的唯一行为和数据。通常,一个关注点代表类的一项功能或行为。将程序划分成若干独立职责的做法显著提高了代码的重用成都、维护性和可测试性。

S.O.L.I.D设计原则

  • 单一职责原则(SRP)
    SRP与分离关注点原则保持高度一致。它要求每个对象应该有且只有一个职责关注点,即只有一个引起类变化的原因。

  • 开放封闭原则(OCP)
    该原则要求类对于扩展应该是开放的,而对于修改应该是关闭的,这样应该就能够在不改变类的内部行为的情况下为类添加新功能,并且避免类被破坏,造成不必要的错误或则bug。

  • 里氏替换原则(LSP)
    任何父类都应该可以被子类替代,并且保持其行为不变。改原则与OCP原则保持一致,确保继承类不会影响父类的行为。

  • 接口分离原则(ISP)
    ISP原则关注的是将接口方法按职责划分为若干个组,并且为这些分组指派不同的接口。避免客户端实现一个庞大和一堆用不到的接口。

  • 依赖倒置原则(DIP)
    DIP原则的宗旨是将自己编写的类与具体的实现隔离开来,让这些类依赖于抽象或者接口。它提倡面向接口编程,这确保代码不会与某种实现紧密耦合,从而提高恶系统的灵活性。

  • 依赖注入(DI)和控制反转(SoC)原则
    DI、SoC与DIP是紧密相连的。DI通过构造器、方法或属性提供低层类或从属类。配合使用DI原则,这些从属类可以被反转为接口或抽象类,这样就可以形成一个具有较高的可测试性和易于修改的低耦合系统。

ASP.NET设计模式:

Atas ialah kandungan terperinci 常见设计原则实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Menggunakan C# .NET Aplikasi ke Azure/AWS: Panduan Langkah demi LangkahMenggunakan C# .NET Aplikasi ke Azure/AWS: Panduan Langkah demi LangkahApr 23, 2025 am 12:06 AM

Bagaimana cara menggunakan aplikasi C# .net ke Azure atau AWS? Jawapannya ialah menggunakan Azureappservice dan AwselasticBeansTalk. 1. Pada Azure, mengautomasikan penggunaan menggunakan Azureappservice dan Azurepipelines. 2. Pada AWS, gunakan Amazon ElasticBeansTalk dan AWSLambda untuk melaksanakan penempatan dan pengiraan tanpa pelayan.

C# .NET: Pengenalan kepada bahasa pengaturcaraan yang kuatC# .NET: Pengenalan kepada bahasa pengaturcaraan yang kuatApr 22, 2025 am 12:04 AM

Gabungan C# dan .NET menyediakan pemaju dengan persekitaran pengaturcaraan yang kuat. 1) C# menyokong polimorfisme dan pengaturcaraan asynchronous, 2) .NET menyediakan keupayaan silang platform dan mekanisme pemprosesan serentak, yang menjadikannya digunakan secara meluas dalam pembangunan aplikasi desktop, web dan mudah alih.

Rangka Kerja .NET vs C#: Menyahkodkan istilahRangka Kerja .NET vs C#: Menyahkodkan istilahApr 21, 2025 am 12:05 AM

.NetFramework adalah kerangka perisian, dan C# adalah bahasa pengaturcaraan. 1..NetFramework menyediakan perpustakaan dan perkhidmatan, sokongan desktop, web dan aplikasi mudah alih. 2.C# direka untuk .NetFramework dan menyokong fungsi pengaturcaraan moden. 3..NetFramework Menguruskan pelaksanaan kod melalui CLR, dan kod C# disusun ke IL dan dikendalikan oleh CLR. 4. Gunakan .NetFramework untuk membangunkan aplikasi dengan cepat, dan C# menyediakan fungsi lanjutan seperti LINQ. 5. Kesilapan umum termasuk penukaran jenis dan kebuntuan pengaturcaraan tak segerak. Alat VisualStudio diperlukan untuk debugging.

Demystifying C# .NET: Gambaran Keseluruhan untuk PemulaDemystifying C# .NET: Gambaran Keseluruhan untuk PemulaApr 20, 2025 am 12:11 AM

C# adalah bahasa pengaturcaraan yang berorientasikan objek yang dibangunkan oleh Microsoft, dan .NET adalah rangka kerja pembangunan yang disediakan oleh Microsoft. C# menggabungkan prestasi C dan kesederhanaan Java, dan sesuai untuk membina pelbagai aplikasi. Rangka kerja .NET menyokong pelbagai bahasa, menyediakan mekanisme pengumpulan sampah, dan memudahkan pengurusan memori.

C# dan runtime .net: bagaimana mereka bekerjasamaC# dan runtime .net: bagaimana mereka bekerjasamaApr 19, 2025 am 12:04 AM

C# dan .NET Runtime bekerjasama rapat untuk memperkasakan pemaju untuk keupayaan pembangunan yang cekap, kuat dan silang platform. 1) C# adalah bahasa pengaturcaraan yang berorientasikan objek dan berorientasikan objek yang direka untuk mengintegrasikan dengan lancar dengan rangka .NET. 2) Runtime NET menguruskan pelaksanaan kod C#, menyediakan pengumpulan sampah, keselamatan jenis dan perkhidmatan lain, dan memastikan operasi yang cekap dan silang platform.

C# .NET Development: Panduan Pemula untuk BermulaC# .NET Development: Panduan Pemula untuk BermulaApr 18, 2025 am 12:17 AM

Untuk memulakan C# .NET Development, anda perlu: 1. Memahami pengetahuan asas C# dan konsep teras Rangka Kerja NET; 2. Menguasai konsep asas pembolehubah, jenis data, struktur kawalan, fungsi dan kelas; 3. Belajar ciri -ciri canggih C#, seperti LINQ dan pengaturcaraan asynchronous; 4. Berkenaan dengan teknik debugging dan kaedah pengoptimuman prestasi untuk kesilapan biasa. Dengan langkah -langkah ini, anda secara beransur -ansur boleh menembusi dunia C#.net dan menulis aplikasi yang cekap.

C# dan .net: memahami hubungan antara kedua -duaC# dan .net: memahami hubungan antara kedua -duaApr 17, 2025 am 12:07 AM

Hubungan antara C# dan .NET tidak dapat dipisahkan, tetapi mereka bukan perkara yang sama. C# adalah bahasa pengaturcaraan, sementara .NET adalah platform pembangunan. C# digunakan untuk menulis kod, menyusun bahasa pertengahan .NET (IL), dan dilaksanakan oleh Runtime .NET (CLR).

Relevan berterusan C# .NET: Lihat penggunaan semasaRelevan berterusan C# .NET: Lihat penggunaan semasaApr 16, 2025 am 12:07 AM

C#.NET masih penting kerana ia menyediakan alat dan perpustakaan yang kuat yang menyokong pelbagai pembangunan aplikasi. 1) C# menggabungkan rangka kerja NET untuk menjadikan pembangunan cekap dan mudah. 2) Mekanisme keselamatan dan sampah jenis C#meningkatkan kelebihannya. 3) .NET menyediakan persekitaran berjalan lintas platform dan API yang kaya, meningkatkan fleksibiliti pembangunan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini