2013-08-11 22 views
5

IntroduzioneQual è la convenzione di denominazione per il metodo di fabbrica?

Il framework applicazione MacApp Macintosh [App89] dichiara sempre la operazione astratta che definisce il metodo di fabbrica come Class * DoMakeClass(), dove classe è la classe del prodotto.

Questa citazione mi ha portato alla domanda sulle convenzioni di denominazione per il modello di progettazione metodo di fabbrica.

aspettative

mi aspetto di vedere le migliori pratiche o esempi utili, che forniscono chiari metodi factory di denominazione.

Poiché potrebbe dipendere da una lingua, consideriamo un insieme delle lingue più diffuse: C#, Java, C++ e JavaScript.

Contesto

Per un contesto propongo di prendere in considerazione la seguente struttura di classe. Abbiamo due classi astratte: documento e applicazione. L'applicazione contiene un elenco di documenti e dovrebbe essere possibile creare un nuovo documento. L'applicazione ha un metodo di fabbrica CreateDocument().

enter image description here

Grazie

+1

La convenzione, se presente, è probabilmente dipendente dalla lingua ... – assylias

+0

Sono interessato a C#, C++ e JavaScript. Ho provato a trovare qualcosa sulle convenzioni di denominazione, ma ho inserito solo una (sulla MacApp) nella mia domanda. – Warlock

risposta

4

IMHO, il nome del metodo dipende dal contesto e la natura dell'oggetto creati. Forse è per questo che non hai trovato alcuna convenzione chiara. Ad esempio, un metodo Create() potrebbe essere corretto in un contesto mentre Open() o Build() potrebbe essere più appropriato in altri.

+0

Sono d'accordo e +1 per il contesto. Il contesto è Re * citato da Applying Domain Driven Design *. –

+0

La convenzione di denominazione è una cosa che esiste o meno. Non dovrebbe dipendere da un contesto o da un linguaggio di programmazione. – Warlock

+0

Non capisco. Perché hai bisogno di una convenzione di denominazione? 'CreateDocument()' sembra essere un metodo factory ben documentato e autodocumentante. –

0

Non ci sono forti convenzioni relative a questo modello di progettazione. La procedura consigliata consiste nell'utilizzare i prefissi "Do" o "Make" per contrassegnare un metodo factory in alcune lingue, che non hanno incorporato metodi virtuali o astratti (ad esempio, javascript).