Domande taggate «object-oriented»

Una metodologia che consente di modellare un sistema come un insieme di oggetti che possono essere controllati e manipolati in modo modulare




3
Composizione su eredità ma
Sto cercando di insegnare a me stesso l'ingegneria del software e trovo alcune informazioni contrastanti che mi confondono. Ho imparato OOP e quali sono le classi / interfacce astratte e come usarle, ma poi sto leggendo che si dovrebbe "favorire la composizione sull'eredità". Capisco la composizione quando una classe compone …


2
In DDD, un servizio di dominio è essenzialmente solo un modello di facciata e / o mediatore?
In Domain Driven Design, il livello di dominio può avere diversi servizi (tradizionali). Ad esempio, per il dominio Utente, potremmo avere: Una UserFactory, che crea oggetti utente in diversi modi Un archivio utenti, che è responsabile dell'interazione con i servizi di persistenza nel livello dell'infrastruttura Un UserService nel livello di …


6
DDD incontra OOP: come implementare un repository orientato agli oggetti?
Un'implementazione tipica di un repository DDD non sembra molto OO, ad esempio un save()metodo: package com.example.domain; public class Product { /* public attributes for brevity */ public String name; public Double price; } public interface ProductRepo { void save(Product product); } Parte dell'infrastruttura: package com.example.infrastructure; // imports... public class JdbcProductRepo …

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; // …

4
struct con valore predefinito privo di senso
Nel mio sistema ho spesso operare con codici aeroportuali ( "YYZ", "LAX", "SFO", etc.), sono sempre nello stesso identico formato (3 lettera, rappresentato in maiuscolo). Il sistema in genere gestisce 25-50 di questi (diversi) codici per richiesta API, con oltre un migliaio di allocazioni totali, vengono passati attraverso molti livelli …





6
Come evitare il downcasting?
La mia domanda riguarda un caso speciale dell'Animale super class. La mia Animallattina moveForward()e eat(). Sealsi estende Animal. Dogsi estende Animal. E c'è una creatura speciale che si estende anche Animalchiamata Human. Humanimplementa anche un metodo speak()(non implementato da Animal). In un'implementazione di un metodo astratto che accetta Animalvorrei usare …

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.