La visibilità privatedei campi / proprietà / attributi della classe è utile? In OOP, prima o poi, farai una sottoclasse di una classe e in quel caso, è bene capire ed essere in grado di modificare completamente l'implementazione. Una delle prime cose che faccio quando faccio una sottoclasse di una …
Se gli oggetti immutabili¹ sono buoni, semplici e offrono vantaggi nella programmazione concorrente, perché i programmatori continuano a creare oggetti mutabili²? Ho quattro anni di esperienza nella programmazione Java e, a mio modo di vedere, la prima cosa che le persone fanno dopo aver creato una classe è generare getter …
Un collega mi ha detto che nella creazione di oggetti Java è l'operazione più costosa che potresti eseguire. Quindi posso solo concludere di creare il minor numero possibile di oggetti. Questo sembra in qualche modo vanificare lo scopo della programmazione orientata agli oggetti. Se non stiamo creando oggetti, stiamo solo …
Spesso, soprattutto nelle biblioteche, i pacchetti contengono classi organizzate attorno a un singolo concetto. Esempi: xml, sql, user, config, db . Penso che ci sentiamo tutti abbastanza naturalmente che questi pacchetti sono corretti al singolare . com.myproject. xml .Element com.myproject. sql .Connection com.myproject. user .User com.myproject. utente .UserFactory Tuttavia, se …
Perché abbiamo bisogno di variabili private nelle classi? Ogni libro sulla programmazione che ho letto dice che questa è una variabile privata, ecco come la definisci ma si ferma lì. La formulazione di queste spiegazioni mi è sempre sembrata una crisi di fiducia nella nostra professione. Le spiegazioni sono sempre …
Getter e setter sono spesso criticati come non OO corretto. D'altra parte, la maggior parte del codice OO che ho visto ha getter e setter estesi. Quando sono giustificati getter e setter? Cerchi di evitare di usarli? Sono abusati in generale? Se la tua lingua preferita ha proprietà (la mia …
Negli ultimi mesi, il mantra "favorire la composizione sull'eredità" sembra essere sorto dal nulla e diventare quasi una sorta di meme all'interno della comunità di programmazione. E ogni volta che lo vedo, sono un po 'sconcertato. È come se qualcuno avesse detto "favorire i trapani sui martelli". Nella mia esperienza, …
Ho appena iniziato il mio primo lavoro come sviluppatore di software più di un mese fa. Tutto ciò che ho imparato su OOP, SOLID , DRY , YAGNI, modelli di progettazione, SRP , ecc. Può essere buttato fuori dalla finestra. Usano i Webform C # .NET e fanno quasi tutto …
Sto cercando una raccomandazione qui. Sto lottando con se sia meglio restituire NULL o un valore vuoto da un metodo quando il valore restituito non è presente o non può essere determinato. Prendi i seguenti due metodi come esempi: string ReverseString(string stringToReverse) // takes a string and reverses it. Person …
Nella programmazione orientata agli oggetti, ovviamente non esiste una regola esatta sulla lunghezza massima di un metodo, ma ho ancora trovato queste due virgolette in contraddizione tra loro, quindi vorrei sentire cosa ne pensate. In codice pulito: un manuale di agile software artigianale , Robert Martin afferma: La prima regola …
Sto lavorando allo sviluppo web dal 2009, quando ho iniziato con PHP. Quando mi sono trasferito su ASP.NET ho sentito molto parlare di DDD e OOAD, dove molta attenzione è stata data a questa "logica di business" e "regole di business". Il punto è che tutte le app che ho …
Sto imparando solo TDD. Comprendo che i metodi privati non sono verificabili e non dovrebbero essere preoccupati perché l'API pubblica fornirà informazioni sufficienti per verificare l'integrità di un oggetto. Ho capito OOP per un po '. Comprendo che i metodi privati rendono gli oggetti più incapsulati, quindi più resistenti ai …
L'incapsulamento mi dice di rendere privati tutti o quasi tutti i campi e di esporli tramite getter / setter. Ma ora appaiono biblioteche come Lombok che ci consentono di esporre tutti i campi privati con una breve annotazione @Data. Creerà getter, setter e costruttori di impostazioni per tutti i campi …
Ad esempio, per mantenere una CPU attiva su Android, posso usare un codice come questo: PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "abc"); wakeLock.acquire(); ma penso che le variabili locali powerManagere wakeLockpossano essere eliminate: ((PowerManager)getSystemService(POWER_SERVICE)) .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag") .acquire(); scena simile appare nella vista di avviso di iOS, ad esempio: …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.