- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
<分区>
recommended principles of object-oriented programming 之一是Liskov substitution principle : 子类的行为应该与其基类相同(警告:这实际上不是对 Liskov 原则的正确描述:请参阅 PS)。
是否建议它也适用于构造函数?我主要想到的是 Python 及其 __init__()
方法,但这个问题适用于任何具有继承性的面向对象语言。
我问这个问题是因为让一个子类继承自一个或多个提供一些良好默认行为的类有时很有用(例如从字典继承,在 Python 中,这样 obj['key']
适用于新类的对象)。然而,允许子类完全像字典一样使用并不总是自然或简单:构造函数参数仅与特定用户子类相关(例如,表示一组串行端口的类)有时会更好可能想要表现得像一本字典,其中 ports['usb1']
是 USB 端口 #1,等等)。对于这种情况,推荐的方法是什么?拥有与其基类完全兼容的子类构造函数,并通过采用简单、用户友好参数的对象工厂函数生成实例?或者简单地编写一个类构造函数,其参数集不能直接提供给其基类的构造函数,但从用户的角度来看哪个更符合逻辑?
PS:我误解了上面的 Liskov 原则:Sven 在下面的评论指出了一个事实,即子类的对象应该表现得像父类(super class)的对象(子类本身不必表现得像父类(super class);特别是,它们的构造函数不必具有相同的参数[签名])。
“所有浏览器兼容”和“跨浏览器兼容”有什么区别? “交叉”是什么意思,是指不同的操作系统吗? 如果任何网站在 IE 7、8 FF 3+、Safari 3+ 的桌面版本上运行良好,我们可以说它是跨浏
我们目前正在维护一个基于 ASP.Net 3.5、MS Enterprise Lib 4.1 和 Telerik ASP.Net AJAX 2010 的企业应用程序。该应用程序由 2 个不同的部分组成
我有一个基于 Ant 的构建系统,我想我可以编写一个 python 脚本来测试目录层次结构中的所有已编译/jarred 类,以避免在编译时与运行时使用不同版本时可能出现的问题。 脚本最初检查了在各种
对于纯 C 共享库,是否有可能在 API 兼容性未被破坏的情况下破坏 ABI 兼容性? 此外,如果编写一个库 A,它提供现有库 B 的所有 API 函数,以及一些额外的 API 函数,那么库 A AB
我可以看到这个问题在这里之前已经被问过 tensorflow-has-no-attribute-compat 但给出的答案是 Microsoft Visual C++ 2015-2019 Redist
我有以下错误。我正在使用 tensorflow 的 conda 安装。我正在努力尝试将它与我的 GPU 一起使用。 Loaded runtime CuDNN library: 5005 (compat
添加 Android 平台(ionic cordova platform add android)后,我构建了我的 Ionic 项目(ionic cordova build android),但出现错
我刚刚在野外看到了这个元标记,想知道它的作用以及为什么要使用它? 阅读documentation在 About.com 上,它说: "IE=edge" tells Internet Explorer
切换到 Android Studio 3.2 canary 后,我收到以下构建错误。 我看过this发布这个人有类似问题但没有提到解决方案的地方。 我想尝试新的 Material 组件和喷气背包,所以
我刚刚将 build.gradle 编译 SDK 更新为 27 API。 compileSdkVersion 27 buildToolsVersion '27.0.3' targetSdkVersio
我有一个简单的 HTML5/ASP.NET 网站,我今天开始在 IE10 中测试它,因为它是为 Win7 发布的。 这是我组织内的一个 Intranet 站点,我相信不久前部署了一个组策略以默认启用在
假设您有一个需要维护的旧代码库,它显然不符合当前标准。在获得标准合规性的同时,您将如何分配您的工作以保持代码库向后兼容?什么对你很重要? 最佳答案 在我的工作场所,我们没有任何时间仅仅因为它可以使代码
我已经在 JDK7 中创建了一个应用程序,但 jre6 仍在市场上使用,如果我将我的 jar 文件发送给使用 jre6 的人,它不会工作,应用程序是否有检查 jre 版本的方法,如果它不兼容然后要
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我正在开发一个同时具有 GUI(图形)和 API(脚本)界面的应用程序。我们的产品有一个非常大的安装基础。许多客户投入了大量时间和精力来编写使用我们产品的脚本。 在我们所有的设计和实现中,我们(可以理
我有以下类层次结构: class O_Base {...} class O extends O_Base {...} abstract class A_Abstract { public fu
我得到了这两个 ko.compulateds 列表,我想在其中拖放,但也使用按钮移动以删除添加到列表的内容。 但是我无法让它们同时使用拖放和按钮功能。 对于拖放,我使用 Ryan Niemeyers
我从事的项目以源代码和二进制形式免费分发,因为我们的许多用户需要专门为他们的系统编译它。这需要一定程度的考虑,以保持与旧主机系统(主要是它们的编译器)的向后兼容性。 其中一些最糟糕的,例如 GCC 3
我的应用程序以 API/minSDKversion 5 为目标,并在 2.2 上运行良好。我的 friend 刚刚尝试将我的应用程序下载到他运行 2.3.4 的 Samsung Galaxy S2 上
简而言之,我的问题是: C 标准明确规定结构成员的相对地址应该按照声明的顺序增长。它也没有说明结构成员应该如何精确对齐的任何细节。显然,这样做是为了允许填充结构和打包结构的实现。然而,从理论上讲,可以
我是一名优秀的程序员,十分优秀!