Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Factory method. Consigli su come strutturare un programma per una corr...
martedì 25 agosto 2009 - 09.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
arguros
Profilo
| Newbie
13
messaggi | Data Invio:
mar 25 ago 2009 - 09:26
Ciao.
Ho scritto un programma che sfrutta il factory method e funziona piu' o meno cosi
Interface Instrument {.....}
Bond : Instrument
Stock : Instrument
Fund : Instrument
interface InstrumentCreator { create(ID)} //questo e' il factoryMethod
//Queste sono le classi concrete
BondCreator : InstrumentCreator
StockCreator : InstrumentCreator
FundCreator: InstrumentCreator
Poi ho una Classe Portfolio che e' una collezione di Instrument.
Esempio un portafoglio puo essere composto di
1) Bond Maturity 10 anni, coupon 4%
2) Bond Maturity 5 anni, coupon 2%
...
10) Miscrosoft stock
11) Googlo stock
....
18) JPM Fund Europe Value
19) GS Fund Europe Growth
Quando devo creare il Portofolio. Nella classe PortfolioCreator faccio una cosa del tipo
Class PortfolioCreator {
public Create(PortfolioID) {
//Vedo quali sono gli InstumentIDs che compongono il porfagolio e poi
foreach InstrumetID in InstrumentIDs
{ if (typeof(InstrumentID) == "Bond")
BondCreator.Create(InstrumendID)
else if (typeof(InstrumentID) == "Stock")
StockCreator.Create(InstrumendID)
else if (typeof(InstrumentID) == "Fund")
FundCreator.Create(InstrumendID)
}
il problema e' il seguente.
Ogni volta che aggiungo un tipo di strumento (Options, futures, ...) devo andare a modificare questo pezzo di codice. Quindi la Classe Portfolio non e' "closed for modification and opend for expansion".
A me piacerebbe creare un nuovo instrument, e far si che la classe Portolio funzioni automaticamente senza andare a modiciare il codice ogni volta, evitando di fatto tutta quella serie di if else... if else.. .if else... Non sarebbe alla fin fine proprio questo il fine del factory method pattern?
Avete qualche idea?
Grazie
Pierpaolo
Gluck74
Profilo
| Guru
1.359
messaggi | Data Invio:
gio 27 ago 2009 - 16:01
c'è una cosa che non mi torna....
da quello che hai scritto sembra che il portafoglio abbia una collezione di indici che si riferiscono a Instruments.
Come fai a fare il typeof di un indice e ricevere la classe????????
arguros
Profilo
| Newbie
13
messaggi | Data Invio:
ven 28 ago 2009 - 08:14
Ciao,
string Typeof(string instrumentID).
Ritorna un stringa. Poi in base alla string, vedo quale strumento creare.
Il portafoglio e' una collection di intruments.
Pierpaolo
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !