如何抽象silverlight中的控件类

本文探讨了在Silverlight项目中使用抽象类与接口的区别,并提出了一种结合抽象类和具体类来实现良好结构的设计方案,该方案能有效解决代码冗余问题,同时保持图形设计器的可用性。

       在好多地方看到silverlight的抽象都是通过接口进行,虽然接口可以解决一部分问题但是还是不是很方便,如果项目的规模比较大处里不好代码之间的关系就有可能在一个文档里面会有上千行代码,而会有很多重复的代码,有很多类似的功能的代码必需的重写,这样不仅增加了工作量而且整个项目的结构会很复杂,即使代码中的注释很详细也很难看得明白。

有一种可以很好解决这种问题的方法就是使用抽象类,相同的属性和方法可以在基类里面实现,子类里只需继承基类就可以获得基类的属性,不用重新写,这样层层实现,不会导致一个文件里充斥大量的代码造成结构混乱。

        这种方法在其他的项目中可以有很明显的效果,但是在SilverLight中设计和实现是分离开的,如果在抽象类来抽象在子类里的继承时就会造成设计器的可视化的设计不可视,所以有会有一定的问题。

         为什么会出现图形设计器不可视?

         这是当抽象基类继承于UserControl就可以被子类的前台设计所使用,在xaml中使用基类是一个实例化的过程,由于抽象类不是可以被实例化的所以就不可能生成可视的UserControl控件。但是运持后的效果还是与原来的一样,只是没有可视化的设计界面,没有设计器是一件很痛苦的事情,每次修改设计想看效果都要运行一下项目,这样显然不可取,不然可以把人逼疯的。

        那么如何既可以用类抽象,又可以看到可视化的设计器呢?

        上面提到了没有可视化的设计器是因为抽象类不可以实例化,所以在设计的时候在控件继承之前再建一个实体类,然后再让控件类继承实体类这样就可以既有抽象类的方便好用,又有可视化的设计器,一箭双雕

       

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值