webForumDet fria alternativet

Hur tänker ni

Programmering

2 svar · 598 visningar · startad av Nickemannen

Medlem sedan aug. 20003 575 inlägg
Frågan#1

Hur hade ni gjort i detta fallet?

Order.AddOrderItem(Product);
Order.AddOrderItem(new OrderItem(Product));

Order.OrderItems.Add(Product);
Order.OrderItems.Add(new OrderItem(Product));

Det övre alternativet skapar en OrderItem med hjälp av Product, en typ av factory kan man ju säga att de innehåller då.
Vad är mest korrekt för er? Hur tänker ni? DDD eller klassisk OOP?

Medlem sedan aug. 20003 575 inlägg
#2

Kollar man på Control som finns i .NET ramverket så verkar det som att de har alternativ 3.

Dock så finns vissa funktioner på Control objektet som är nära besläktat med listan men inte alla som t.ex. add osv.
Control.Controls.Add(control); verkar dessutom göra så att ägaren av ControlCollection blir parent till control som skickas in.

Detta blir nog min apporach också. Men jag är fortfarande nyfiken på hur ni tänker.

Medlem sedan juli 20011 304 inlägg
#3

Jag skulle föredra:

Order.OrderItems.Add(OrderItem);

och då kommer ju:

Order.OrderItems.Add(new OrderItem(Product));

av sig själv.

Detta därför att det är så objektmodellerna oftast är uppbygda, man känner igen sig.

Det övre alternativet tycker jag inte är fel, men det kräver ju oftast att man gör både get och set metoder.

red: När jag tänker efter så är det förståss så att anledningen till att .Add() brukar användas att man får den "på köpet" i collections som det ju är frågan om i detta fallet :)
Så när man bara lägger till något i en collection tycker jag att .Add() är intuitivt men om funktionen gör mer/något annat kan ju en setter-metord vara befogad.

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)