Domande taggate «encapsulation»

6
Metodo concatenamento vs incapsulamento
Esiste il classico problema OOP del concatenamento dei metodi rispetto ai metodi "single-access-point": main.getA().getB().getC().transmogrify(x, y) vs main.getA().transmogrifyMyC(x, y) Il primo sembra avere il vantaggio che ogni classe è responsabile solo di un insieme più piccolo di operazioni e rende tutto molto più modulare - l'aggiunta di un metodo a C …

5
Posso usare l'iniezione di dipendenza senza interrompere l'incapsulamento?
Ecco la mia soluzione e i miei progetti: BookStore (soluzione) BookStore.Coupler (progetto) Bootstrapper.cs BookStore.Domain (progetto) CreateBookCommandValidator.cs CompositeValidator.cs IValidate.cs IValidator.cs ICommandHandler.cs BookStore.Infrastructure (progetto) CreateBookCommandHandler.cs ValidationCommandHandlerDecorator.cs BookStore.Web (progetto) global.asax BookStore.BatchProcesses (progetto) Program.cs Bootstrapper.cs : public static class Bootstrapper.cs { // I'm using SimpleInjector as my DI Container public static void Initialize(Container container) …


1
Usare le classi di amici per incapsulare le funzioni dei membri privati ​​in C ++ - buone pratiche o abusi?
Quindi ho notato che è possibile evitare di inserire funzioni private nelle intestazioni facendo qualcosa del genere: // In file pred_list.h: class PredicateList { int somePrivateField; friend class PredicateList_HelperFunctions; public: bool match(); } // In file pred_list.cpp: class PredicateList_HelperFunctions { static bool fullMatch(PredicateList& p) { return p.somePrivateField == 5; // …






5
Come rendere ovvio che si accede a una funzione dall'esterno?
Questa è una domanda specifica C. Sto cercando di mantenere tutto il possibile all'interno dei confini dell'unità di traduzione, esponendo solo alcune funzioni attraverso il .hfile. Cioè, sto dando un staticcollegamento ad oggetti a livello di file. Ora, un paio di funzioni devono essere chiamate da altri moduli, ma non …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.