为了账号安全,请及时绑定邮箱和手机立即绑定

请教关于类的继承

请教关于类的继承

慕哥9229398 2018-08-02 05:06:54
权限管理设计中 增加了BasePage,然后各个页面public partial class LanEmail_EmailView : BasePage继承BasePage如何在Basepage中判断是哪个页面继承了它然后向它注册权限相应信息?
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

你这样设计是不对的,父类是不应该“预计”到子类的存在的

如何在Basepage中判断是哪个页面继承了它然后向它注册权限相应信息

那么事实上就是子类的注册权限信息是不同的,你想把这些都归并到父类的一个方法里去。正确的做法是父类应该有一个PrepareAccessInfo的虚方法:

protected virtual void PrepareAccessInfo() 
{
     //一些通用的实现
}

然后每个子类如果有独特的逻辑,就override这个方法,如果没有独特的逻辑,就可以不做任何事情而使用父类中的通用逻辑。这个方法你可以在适当的地方调用,比如page init的时候。


查看完整回答
反对 回复 2018-08-06
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

你可以使用几种方式,一是使用事件,在基类中定义一个事件,然后在不同的页面登记该事件,在该事件中处理你想注册的信息,这样不同的子类就可以有不同的注册信息了。

第二的中你可以参考下设计模式中的模板模式;

第三种方式就是结合一二中方式,在PageBase中定义一个抽象或者虚方法functionA,在load事件中调用functionA方法,不同的子类实现或者重写functionA


查看完整回答
反对 回复 2018-08-06
  • 2 回答
  • 0 关注
  • 535 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信