La lingua è PHP. Ho diverse funzioni che si riferiscono l'un l'altro (e talvolta si usano l'un l'altro) che ho deciso di accoppiare sotto la stessa classe.
Ecco i miei ragionamenti, tieni presente che sono limitato da ciò che ancora non so in termini di come verrà utilizzato il mio codice:
These functions have no clear need for a class on their own.
These functions I only need as small bits for random events throughout my other codebase.
These functions I see as a "package of methods that relate to a certain scope", e.g functions that deal with file functionalities (write / read / append, etc.)
These functions help me avoid over-Dependency Injecting; while the classes that use these methods cannot work without these methods, as such, they're depdendent on these methods, it makes no sense to DI the class that contains these methods because it over-complicates code that should be simple.
These functions are a core part that should never be touched, they're provided to you "as is". Static methods cannot be overwritten and this is a plus in my case. Under no circumstance do I want developers to meddle with them.
It is more elegant to write
use Package;
thanrequire_once
for every file, using Composer will leave the functions out in the global scope which I don't want.
Ed ecco il mio codice attuale, appena rimosso dalla funzionalità:
class FilesHelpers
{
public static function saveFileToDisk(){}
public static function saveExportFile(){}
public static function getFilePath(){}
}
Come puoi vedere, queste funzioni trattano tutti i file, ma come affermato in precedenza, raramente si toccano e generalmente sono in grado di stare in piedi da soli, senza bisogno di altre funzioni.
Dico semplicemente use FilesHelpers
e chiamo il metodo che mi serve.
Voglio che queste funzioni siano prontamente accessibili, ma ho pensato che non è una grande idea dato che non ho davvero bisogno di loro tranne che per i posti in cui ho bisogno di loro, mentre renderle statiche non mi aiuta con questo, in Nella mia mente, un insieme di funzioni statiche che non si interessano a vicenda in una classe sono più "disaccoppiati" rispetto alle funzioni non statiche che richiedono l'istanziazione degli oggetti.
Se dovessi dirlo in altre parole: non voglio che le classi che usano queste funzioni abbiano delle dipendenze perché possono essere facilmente scambiate, se usi la mia classe, usi questi metodi, nessuna discussione, se vuoi fare il processo in un altro modo, va bene, hai l'interfaccia principale su cui puoi scrivere e non hai bisogno di usare le mie funzioni statiche.
È questo l'approccio giusto?