《基于模型的软件开发》——3.4 泛型

简介:

本节书摘来自华章计算机《基于模型的软件开发》一书中的第3章,第3.4节,作者:[美]H. S.莱曼(H. S. Lahman)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 泛型

泛型是我们都在实际使用但却没有意识到自己在使用的一种方法。泛型通过参数化替代不同的行为。从本质上讲,我们所获得的不同结果,取决于单个行为职责的输入参数值——这种想法在“汇编宏”方法使用时就已经存在了,因此我们在此不多做讨论。实际上,它的另外一个名字——参数多态,表明它是多态的一种特例。
任何具有以下特征的方法都可以在技术上视为泛型的实例,在这些方法中,不同的行为依赖于该方法的参数值。因此,任何一个对参数值进行if判断的方法都可以视为泛型的实例。然而,大部分OO人员通常从存在显著行为差异这个方面考虑泛型。在这样的上下文中如何给“显著”一个很好的定义留给读者做练习。
由OO范式带来的一个特有的问题在于,如何扩展参数这一定义。以传统的视角看来,参数是过程的一个输入。在OO的上下文中,参数的定义扩展至包括任何潜在的状态变量,这些状态变量对于某一个行为方法是可访问的。因此在OO的上下文中,任何一个可达对象的任何知识属性都是行为职责中的一个潜在参数。
这引入了一种非常强大的设计模式,我们在一个对象中定义通用的行为职责,然后将该对象与另外一个对象进行关联,另外一个对象是“规格对象”,其属性参数是上述对象的通用行为。这使得我们可以在运行时动态地实例化对象之间的关系,即根据上下文动态确定哪一个“规格对象”是当前运行时“正确”的那一个。这是一种非常强大的技术,但是在当前的OO开发中没有得到充分的利用,我们将用整个第5章来论述这一技术。

相关文章
|
程序员 测试技术 开发工具
成功软件开发者的9种编程习惯
成功软件开发者的9种编程习惯
85 1
|
7月前
|
安全 程序员 编译器
C#一分钟浅谈:泛型编程基础
在现代软件开发中,泛型编程是一项关键技能,它使开发者能够编写类型安全且可重用的代码。C# 自 2.0 版本起支持泛型编程,本文将从基础概念入手,逐步深入探讨 C# 中的泛型,并通过具体实例帮助理解常见问题及其解决方法。泛型通过类型参数替代具体类型,提高了代码复用性和类型安全性,减少了运行时性能开销。文章详细介绍了如何定义泛型类和方法,并讨论了常见的易错点及解决方案,帮助读者更好地掌握这一技术。
127 11
|
10月前
|
Java
JavaSE——面向对象基础(4/4)-成员变量和局部变量的区别、面向对象综合案例(电影信息系统)
JavaSE——面向对象基础(4/4)-成员变量和局部变量的区别、面向对象综合案例(电影信息系统)
31 0
|
11月前
|
设计模式 C++
53继承在软件开发中的重要意义
53继承在软件开发中的重要意义
83 0
|
前端开发
简化你的代码,提高生产力:这10个Lambda表达式必须掌握
Lambda表达式是一种在现代编程语言中越来越常见的特性,可以简化代码、提高生产力。这篇文章将介绍10个必须掌握的Lambda表达式,这些表达式涵盖了在实际编程中经常用到的常见场景。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等