Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
C# 接口实现关系只是“Can-Do”关系?
今天有人告诉我 C 中的接口实现只是 Can Do 关系 而不是 Is A 关系 这与我长期以来所相信的LSP 里氏替换原理 相冲突 我一直认为所有的继承都应该意味着 Is A 关系 所以 如果接口实现只是一种 Can Do 关系 如果有一
c
inheritance
interface
liskovsubstitutionprinciple
当遵守里氏替换原则(LSP)时,子类可以实现额外的接口吗?
考虑这个红宝石示例 class Animal def walk In our universe all animals walk even whales puts walking end def run Implementing to co
ruby
OOP
solidprinciples
liskovsubstitutionprinciple
里氏替换原理的例子是什么?
我听说里氏替换原则 LSP 是面向对象设计的基本原则 它是什么 它的使用示例有哪些 说明 LSP 的一个很好的例子 由鲍勃叔叔在我最近听到的播客中给出 是有时在自然语言中听起来正确的东西在代码中却不太有效 在数学中 一个Square is
当“if else”/“instance of”不可避免时,除了使用访问者模式之外,我们如何改进设计?
当我们有一个纯粹是语义继承而不是行为继承的对象层次结构时 我们不可避免地需要到处编写 instanceof 或 if else 来进行运行时类型检查 E g 如果我有一个对象层次结构 Class Function Class Average
Collections.unmodifierXXX 方法是否违反 LSP? [关闭]
Closed 这个问题是基于意见的 help closed questions 目前不接受答案 里氏替换原则 http en wikipedia org wiki Liskov substitution principle是原则之一SOLI
Java
OOP
Collections
liskovsubstitutionprinciple
为什么里氏代换原理需要论证是逆变的?
其中一项规则是里氏替换原则 https en wikipedia org wiki Liskov substitution principle施加在派生类中的方法签名是 子类型中方法参数的逆变 如果我理解正确的话 就是说派生类的重写函数应该
contravariance
liskovsubstitutionprinciple
使用策略模式避免沮丧
我正在读这个网站 https dzone com articles the liskov substitution principle with examples关于里氏替换原理 它指出 根据 LSP 使用基类引用的函数必须是 能够在不知情
里氏替换原理、前提条件和抽象方法
里氏替换原理 LSP 说 无法在子类型中强化先决条件 在 C 中 我可能会违反整个原则 如下所示 public class A public virtual void DoStuff string text Contract Require
c
OOP
abstract
designprinciples
liskovsubstitutionprinciple
您能用一个很好的 C# 示例来解释里氏替换原理吗? [关闭]
Closed 这个问题需要多问focused 目前不接受答案 您能用一个很好的 C 示例来解释里氏替换原理 SOLID 的 L 以简化的方式涵盖该原理的所有方面吗 如果真的可以的话 此答案已于2013 05 13重写 请阅读评论底部的讨论
c
NET
OOP
solidprinciples
liskovsubstitutionprinciple
为什么 Rust 不支持特征对象向上转换?
鉴于此代码 trait Base fn a self fn b self fn c self fn d self trait Derived Base fn e self fn f self fn g self struct S impl
OOP
Rust
languagedesign
liskovsubstitutionprinciple
我可以实现一系列可重用的测试来测试接口的实现吗?
我正在用 C 编写一系列集合类 每个集合类都实现类似的自定义接口 是否可以为接口编写单个单元测试集合 并在多个不同的实现上自动运行它们 我想避免每个实现的任何重复的测试代码 我愿意研究任何框架 NUnit 等 或 Visual Studio
NET
visualstudio2010
unittesting
liskovsubstitutionprinciple
Square 和 Rectangle 继承有什么问题?
我读过一些关于将 Square 作为 Rectangle 类的继承类是一种不好的做法的文章 说它违反了 LSP 里氏替换原则 我还是不明白 我用Ruby做了一个示例代码 class Rectangle attr accessor width
ruby
OOP
liskovsubstitutionprinciple
里氏替换原则是否也适用于实现接口的类?
1 LSP是否也适用于接口 这意味着我们应该能够使用实现特定接口的类并仍然获得预期的行为 2 如果确实如此 那么为什么对接口进行编程被认为是一件好事 顺便说一句 我知道对接口进行编程会增加松散耦合 如果反对使用继承的主要原因之一是由于不使用
DesignPatterns
liskovsubstitutionprinciple