Diskuze: Správné OOP

C# .NET .NET (C# a Visual Basic) Správné OOP American English version English version

Avatar
beats.omni
Člen
Avatar
beats.omni:

Ahoj, mám dotaz ke kódu níže. Je to jednoduchý kód, který získává info o OS a CPU. Můj dotaz zní, zda je napsán správně co se týče OOP. Zda je správné vytvářet instance, které nastaví WMI třídu a následné dotazy na název OS nebo CPU směřuju přímo do metody. Nebo bych ve třídě searcher neměl dělat konstruktor vůbec a pouze napsat metodu s parametry?

class Program
    {
        static void Main(string[] args)
        {
            Searcher srOS = new Searcher("Win32_OperatingSystem");
            Searcher srCPU = new Searcher("Win32_Processor");

            string osJmenoInfo = srOS.ObjectSearcher("Name");
            string osEdiceInfo = srOS.ObjectSearcher("Caption");

            string cpuJmenoInfo = srCPU.ObjectSearcher("Name");
            string cpuMaxSpeedInfo = srCPU.ObjectSearcher("MaxClockSpeed");

            Console.ReadKey();
        }
class Searcher
   {
       public string Vypis { get; private set; }
       private string wmiClass;

       public Searcher(string wmiClass)
       {
           this.wmiClass = wmiClass;
       }

       public string ObjectSearcher(string objekt)
       {
           ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM " + wmiClass);
           foreach (ManagementObject item in mos.Get())
           {
               Vypis = item[objekt].ToString();
           }
           return Vypis;
       }
   }
 
Odpovědět 31.3.2015 11:26
Avatar
Gramli
Redaktor
Avatar
Odpovídá na beats.omni
Gramli:

Podle me je to ok, jen pokud promenou vypis nepouzivas jeste nekde jinde, tak je tam celkem zbytecna ne? Mohlo by to byt takto :

public string ObjectSearcher(string objekt)
       {
           string vypis = "";
           ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM " + wmiClass);
           foreach (ManagementObject item in mos.Get())
           {
               vypis = item[objekt].ToString();
           }
           return vypis;
       }
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 31.3.2015 19:34
Kdo to říká ten to je...
Avatar
vodslon
Člen
Avatar
Odpovídá na beats.omni
vodslon:

Zkus kouknout na třídu ManagementClas https://msdn.microsoft.com/….110%29.aspx

Máto jednodušší zápis a na nevýhody jsem zatím nenarazil, třeba někdo poví ? :)

 
Nahoru Odpovědět 1.4.2015 9:42
Avatar
beats.omni
Člen
Avatar
Odpovídá na vodslon
beats.omni:

Díky za tip, určitě se na to podívám :-)

 
Nahoru Odpovědět 2.4.2015 21:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.