应用程序开发总结(5)--类的切片

第七章 类的切片

先解释下标题的含义。切片就是把一个东西分割,如果你熟悉数据库切片,那么我说的类的切片也是这个道理。简单的说就是将一个很庞大的类,进行简化。切片的方法有
  • 提取基类或者接口
  • 将一些函数提取成处理类。
  • 使用partial(C#分部(类型))将代码页拆分多部分
一个代码类,如果超过500行,那么找一个函数就开始麻烦了。有些同学写过超过2000行的,那等于航母呀。(PS,我还真有超过2000行的代码)。如果过于庞大的代码页,那么就可以考虑上面的切片方法。
1)提取基类或者接口
这种方法不影响外部函数的调用,调用此类的代码不需要修改。如果两个相关的类存在相关性,那么提取基类,也可以更加方便的维护代码的一致性。
2)将一些函数提取成处理类
这个方法其实在设计模式中讲了很多,比如工厂模式,   模版模式  组合模式等。举个简单的例子,飞是鸟的特有属性,但是不同的动物不同的飞行方式,比如鸽子的啪啪啪的飞和鹰的滑翔飞。你可以使用一个抽象函数来让不同的对象实现自己的飞行方式。
如果把飞做成抽象类,那么就定义一个Fly的类,它来统筹常见的飞行方式。这样鸽子的啪啪啪的飞就可以用这个Fly类的啪啪啪飞函数来实现,鹰的滑翔飞用Fly类的滑翔飞来实现。
这种方法对那些数据计算尤其有用,因为数学是物体运动的基础,都满足什么物理第一定律之类的。如下图,NodeInfo和PipeInfo的数值计算都在Calculator这个组里面。从而使得PipeInfo和NodeInfo这两个类差不多只剩下成员属性了,非常干净。
也可以参考MVC的设计方式,将界面展示和控制分开。
一个设计窗口如果存在多个功能点,那么将每个功能点分别设计,主窗口只是简单的集成即可。
如下图,其实每一个红色格子是一个单独的UserControl。它们在主界面集成,主界面的代码只有300行
3)使用partial将代码页拆分多部分
这种方法针对于不能通过上面两种方法类实现的。或者更愿意把它们放在一起,对外就提供的单一的入口。比如C#的Math函数(实际的代码页行数或许一个页面可以了,这里为了举例)。
上图,你可以将三角函数写一个代码页,名为MathOfTrigonometri。将幂积运算写在一个代码页,名为MathOfPower。编程人员如果要怀疑一个数值计算不正确,或者翻译函数让他无法理解(比如他想找Floor函数的同义词,但不清楚是Ceiling),他只要打开相关的代码页,就能大体找到这个函数了。

最后,本段写的是针对底层编程人员,做二次开发关心不了这些内容。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值