webForumDet fria alternativet

OOP? hur gör ni?

2 svar · 238 visningar · startad av PatrikB

PatrikBMedlem sedan mars 20002 836 inlägg
#1

Nu när .NET är OO och man vill följa OO-lagarna så undrar jag hur ni gör för att inte bryta mellan Presentation/Business/Data - layers, dvs man skickar inte ett recordset/connection från Data Layer till Business Layer osv. Gör man det "bryter man ju OO-lagarna" å det grövsta :e

Så hur gör ni?
Returnerar ni arrayer eller collections?
Hur blir prestandan?

cya,
PatrikB

renholmMedlem sedan apr. 20012 266 inlägg
#2

Mellan Data och Business kan man skicka ett dataset/datarow/datatable. Sedan mellan Business och Presentation så beror det på vad du ska göra, om du ska fylla en datagrid med data så tycker jag att man gott och väl kan köra med dataset/datatable. Men om vi säger att du ska presentera användard information om en använder som du har i databas så skulle du kunna skapa en class som t.ex heter UserItem och har t.ex. user_id, username, email som properties och sedan när man skapar ett ny instans av Useritem fylls den med data. exempel:

class UserItem
{
  public int user_id;
  public string username;

  public UserItem(int id)
  {
      // kod som sätter värde på variblerna.
  }
}

Går att göra bättre sådana classer men detta är ett exempel.

ToonsterMedlem sedan feb. 20001 590 inlägg
#3

OOP fyller inget självändamål, utan är en strukturering/modellering av ett problem i kodform.

Det jag vill ha sagt är att man behöver inte följa alla skrivna och oskivna regler, utan man kan ju göra lite som man själv vill (om det inte ligger ett tungt projektbeskrivningsdokument som en guds hand över hela arbetsstyrkan...)

Det är inte heller alls säkert att du bryter någon "lag" bara för att du skickar en connectionstring mellan två logiska lager i en skiktad lösning.

Allt är lite upp till mängden data och hur du tänkt dig,

127 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)