Megosztás a következőn keresztül:


Statikus osztály tervezése

Megjegyzés:

Ezt a tartalmat a Pearson Education, Inc. engedélyével nyomtatjuk újra a Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition című műből. Ezt a kiadást 2008-ban adták ki, és a könyvet azóta teljesen átdolgozták a harmadik kiadásban. Előfordulhat, hogy az oldalon található információk némelyike elavult.

A statikus osztály olyan osztályként van definiálva, amely csak statikus tagokat tartalmaz (természetesen az örökölt System.Object példánytagok és esetleg egy magánkonstruktor mellett). Egyes nyelvek beépített támogatást nyújtanak a statikus osztályokhoz. A C# 2.0-s és újabb verzióiban, amikor egy osztály statikusnak van deklarálva, az végleges, absztrakt, és az osztály példánytagjai nem örökölhetők vagy nem lehet őket deklarálni.

A statikus osztályok kompromisszumot jelentenek a tiszta objektumorientált tervezés és az egyszerűség között. Gyakran használnak más műveletekhez való parancsikonokat (például System.IO.File), kiterjesztési metódusok kezelőit vagy olyan funkciókhoz, amelyek nem igényelnek teljes objektumorientált burkolót (például System.Environment).

✔️ A DO takarékosan használja a statikus osztályokat.

A statikus osztályok csak a keretrendszer objektumorientált magjának segédosztályaiként használhatók.

❌ NE kezelje a statikus osztályokat vegyes gyűjtőként.

❌ Ne deklaráljon vagy írjon felül példánytagokat statikus osztályokban.

✔️ Do deklarálja a statikus osztályokat lezártként, absztraktként, és adjon hozzá egy privát példány konstruktort, ha a programozási nyelv nem támogatja a statikus osztályok beépített támogatását.

© Részletek 2005, 2009 Microsoft Corporation. Minden jog fenntartva.

Újranyomva a Pearson Education, Inc. engedélyével, Krzysztof Cwalina és Brad Abrams Framework Design Guidelines: Konvenciók, Idiomák és Minták az Újrafelhasználható .NET Könyvtárak Számára, 2. kiadás című könyvéből, közzétéve 2008. október 22-én, a Addison-Wesley Professional által, a Microsoft Windows Fejlesztési Sorozat részeként.

Lásd még