webForumDet fria alternativet

Sätta instansvariabel i basklass

.NET

3 svar · 701 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

Är det "fult" att placera instansvariablar i basklass så här?


public class SomeClass : BasePage
{
        public Page_Load(object sender, EventArgs e)
        {
                ClientBL.SomeMethod();
        }
}

public class BasePage : Page
{
        private ClientBL _clientBL;
        public ClientBL ClientBL
        {
            get
            {
                if (_clientBL == null)
                    _clientBL = new ClientBL();
                return _clientBL;
            }
        }
}
Medlem sedan sep. 200888 inlägg
#2

doggelito skrev:

Är det "fult" att placera instansvariablar i basklass så här?


public class SomeClass : BasePage
{
        public Page_Load(object sender, EventArgs e)
        {
                ClientBL.SomeMethod();
        }
}


public class BasePage : Page
{
        private ClientBL _clientBL;
        public ClientBL ClientBL
        {
            get
            {
                if (_clientBL == null)
                    _clientBL = new ClientBL();
                return _clientBL;
            }
        }
}

Fult o fult så görs det ju mkt med page egna proppar och metoder ändå..
Det fula är att man fattar inte vad ClientBL riktigt är. ;) Så försök göra namnet tydligare...

Antar att du försöker nyttja den som något slags lager. Jag skulle inte gjort så här då. Jag hade nog föredragit MVC patternet. Inte ramverket utan mönstret med den teknik ASP .Net erbjuder idag utan MVC Ramverket.

Dvs använda ASPX och CB som Vyn. En egen klass som kontroller som vyn ropar på. Där controllern i sig sedan anropar saker i domän/businesslagret.

ASPX -> CB -> Page_Load ---> orderController.DoSomething(....) ---> OrderService ---> ... OrderRepository ---> DB

Där OrderService är min klass i typ BL (ett namn jag inte använder längre... utan kallar mer för Domän Lager.) Där OrderService sen hanterar en Order entitet och nyttja Repositories (objekt som hanterar persistens mot en Data källa)

Medlem sedan juni 20003 076 inlägg
#3

Aha! :)
Men hur anropar du kontrollern i CB? Via ett interface eller instansierar du kontrollerklassen som vanligt?

Medlem sedan sep. 200888 inlägg
#4

doggelito skrev:

Aha! :)
Men hur anropar du kontrollern i CB? Via ett interface eller instansierar du kontrollerklassen som vanligt?

Instansierar som vanligt.

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)