Vraag : Hoe te goed te programmeren

Ik heb ontwerp/ideologic probleem, en trek weet aan welke oplossing choose.

ClassWithData - is de klasse die gegevens voor ClassWithFunction
ClassWithFunction opslaat - klasse is die iets door zijn functie

class A
doet te roepen {
ClassWithData CD;
ClassWithFunction cf.;
private:
RunWrapper ()
{
cf.function (CD);            
}
};

OR

class A
{
ClassWithData CD;
ClassWithFunction cf.;
private:
RunWrapper (ClassWithData& x)
{
cf.function (x);            
}
};

(die RunWrapper is privé ofcourse)
Iam met dat wordt verward omdat, soms ik als in eerste voorbeeld en soms a als tweede zonder enige reson.
schrijf

Antwoord : Hoe te goed te programmeren

O.k. zie ik, dank voor het posten van de kopballen. :)

Deze code maakt duidelijk dingen, eigenlijk zijn enige 1 klasse nodig te ingewikkeld, eerder dan 3.

Laat vraag het „Proces“:

klassen Proces
{
publiek:
    Proces (norm:: wstring executable_name_, norm:: het wstring command_line_);
    ~Process (leegte);

    nietige StartProcess ();

privé:
    nietige CreateProcessAsActiveSession ();
    bool GetActoveConsoleSessionId (DWORD& session_id);

privé:
    norm:: het wstring executable_name_;
    norm:: het wstring command_line_;
};

De lid-functie „StartProcess“ behoort in deze klasse, omdat allen het in termen van gegevens vereist, hier is.

U ziet het al functionaliteit, als 3 klassen heeft, maar het kapselt de gegevens en de functies in die op dat gegeven in 1 plaats werken. Dat is wat door „Inkapseling“ in termen van oO-Programmeert wordt bedoeld.
Plus het heeft een schonere interface en is gemakkelijker te gebruiken.

Misschien maakt het het duidelijker, als u over het toevoegen van nieuwe functionaliteit, als KillProcess en anderen denkt, zij allen behoort in deze klasse. Houd de gegevens en de functies die samen op dat gegeven in 1 plaats werken.
Andere oplossingen  
 
programming4us programming4us