编程中的函数导向与语言基础
类定义中的组合机制
在类的定义中,除了常见的机制外,组合是另一个重要概念。组合意味着一个类包含一组部分,而这些部分中的任何一个又可以包含其他部分,形成一个真正的层次结构。而且这是一个动态系统,因为每个部分都可以是多个集合的一部分。
与继承相比,继承和组合都是一个类对另一个类的使用方式。但组合需要对被使用的类进行实例化,即需要一个对象。继承允许在使用时修改被使用的类,是一种开放的使用方式,可将类视为“白盒”;而组合则不能修改,是封闭的使用方式,将类视为“黑盒”。不过,组合可以通过“包装”被使用的类来实现一定程度的功能修改,避免了继承的复合静态限制。从类结构的角度看,“包装器”就像是一个额外的层。组合的层次结构表明,函数导向的这一方面实际上仍然与应用导向相关。
函数导向与应用导向
函数导向更倾向于形成网络而非结构。管理这个网络的标准方法是使用一个带有大量箭头的大型图表,以指示函数集之间以及函数集内各个函数之间的关系,但这种方法的学习曲线较陡。有趣的是,函数集的网络类似于面向过程编程中的“ spaghetti code ”问题,不过函数导向版本的问题出现频率要低得多。
另一种对特定应用很有帮助的方法是将重要的函数映射到应用结构上,这展示了函数集如何应用于特定应用,体现了函数集的应用导向。函数导向关注“是什么”和“如何实现”,而应用导向关注“为什么”,实际上是多个“是什么”的组合。
在应用导向的软件开发过程中,决策需要对单个函数的特性及其相互关系有深入理解,并平衡多个因素,这使得优秀的应用导向开发成为一门艺术。同样,在函数导向的软件开发过程中,决策需要对函数集的特性及其相互关系有感觉,并平衡多个因
超级会员免费看
订阅专栏 解锁全文
2525

被折叠的 条评论
为什么被折叠?



