首页 > 其他分享 >七大设计原则(二)

七大设计原则(二)

时间:2024-04-14 12:45:50浏览次数:12  
标签:依赖 原则 里氏 七大 倒转 设计 父类 替换

三、里氏替换原则

里氏代换原则由2008年图灵奖得主、美国第一位计算机科学女博士Barbara Liskov教授和卡内基·梅隆大学Jeannette Wing教授于1994年提出。其严格表述如下:如果对每个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换o2时,程序P的行为没有变化,那么类型S是类型T的子类型。这个定义比较拗口且难以理解,因此一般使用它的另一个通俗版定义:

里氏代换原则(Liskov Substitution Principle,LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。

里氏替换原则强调。程序设计中,一个地方可以使用父类对象,那么一定可以使用其子类替换。因为子类是父类的泛化,父类定义的行为和属性,在子类中一定有对应的实现。里氏替换原则是实现开闭原则的保证,只要满足该原则,我们可以在定义对象时使用父类,在程序运行时使用子类来替换,这样可以很方便的扩展系统的功能。

 

四、依赖倒转原则

依赖倒转原则是Robert C.Martin在1996年为“C++Reporter”所写的专栏Engineering Notebook的第3篇,后来加入他在2002年出版的经典著作Agile Software Development,Principles,Patterns,and Practices一书中。依赖倒转原则定义如下:

依赖倒转原则(Dependency Inversion Principle,DIP):抽象不应该依赖于细节,细节应该依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。

依赖倒转原则强调,在关联关系或者依赖关系中,程序应该引用层次更高的抽象类,而不是具体的类。抽象类被用来设计处理一些共性的问题。这样当系统的行为发生变动时,可以通过增加具体的类的实现来解决具体问题,降低影响范围。

 

里氏替换原则和依赖倒转原则常常被放在一起使用,用来增加程序的扩展性。下面来看一个例子:

  

 

标签:依赖,原则,里氏,七大,倒转,设计,父类,替换
From: https://www.cnblogs.com/xyhj/p/18134000

相关文章

  • c语言程序设计——实验报告三
    实验项目名称:实验三简单顺序程序设计实验项目类型:验证性实验日期:2023年3月28日一、实验目的1.学会准确使用C语言的数据输入与输出函数2.能编写简单顺序结构程序二、实验硬、软件环境Windows计算机、Devc6.0三、实验内容及步骤实验内容:编写程序:(1)输入三个小写字母,输......
  • 原型设计
    (1)当涉及原型设计工具时,墨刀、Axure和Mockplus都是受欢迎的选择。下面是它们各自的适用领域和优缺点的比较:墨刀适用领域:适合小型项目和团队,迭代速度快。简单易用,学习曲线较低。支持多端预览,包括手机、网页等。优点:简单易用,学习曲线低。适合快速迭代和协作设计。支持多端预......
  • 原型设计工具比较及实践
    墨刀(Mockplus):适用领域:墨刀适用于移动应用和网页的快速原型设计,可用于产品设计、交互设计、UI设计等。优点:快速原型设计:墨刀提供丰富的组件库和交互动画,可以快速创建交互式原型。多人协作:团队成员可以实时协作编辑原型,提高团队协作效率。云端存储:墨刀支持云端存储和分享,方......
  • 原型设计工具比较及实践
    一、原型设计工具比较墨刀:适用领域:墨刀适合快速原型设计和协作。特别是对于小型项目、个人设计者或团队合作,提供了友好的界面和快速的拖放功能。优点:1.拥有基础的组件库。2.易用性高,模板多。3.快速上手,适合快速迭代和团队协作。缺点:1.功能相对较简化,对于复杂交互实现比较......
  • 原型设计工具比较及实践
    墨刀(Modao)适用领域:快速原型设计移动应用和网页设计团队协作优点:界面简洁,上手快,适合新手支持多人实时在线协作提供丰富的模板和组件库缺点:功能相对有限,不适合复杂的交互设计导出和分享功能较为基础主要面向中文用户,国际化支持较弱Axure适用领域:复杂交互设......
  • 实验一音乐app原型设计1
    对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点,以下是对这三个工具的对比分析:对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点,以下是对这三个工具的对比分析:1.墨刀适用领域:作为国内目前广受认可的一款在线原型设计和协同工具,......
  • 原型设计工具比较及实践
    墨刀(Mockplus):适用领域:墨刀适用于移动应用和网页的快速原型设计,可用于产品设计、交互设计、UI设计等。优点:快速原型设计:墨刀提供丰富的组件库和交互动画,可以快速创建交互式原型。多人协作:团队成员可以实时协作编辑原型,提高团队协作效率。云端存储:墨刀支持云端存储和分享,......
  • 实验1————电纸书资源网页原型设计
    一、对比墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点1.墨刀适用领域:主要专注于app原型设计,适合高保真原型、复杂多交互项目以及安卓/ios端项目。优点:操作效率高,易于上手,特别适合设计移动应用的交互原型。缺点:在后台和网页设计方面稍显乏力,归档能力不足,输......
  • 原型设计工具比较及实践
    一、对墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点的分析Axure:适用于制作功能复杂、交互多样的原型设计,尤其在PC端原型图上有优势。墨刀:适合APP和微信小程序的原型设计,也支持网页和桌面应用的设计。Mockplus:适用于快速原型设计,强调简单易用和高效,适合初学者......
  • 原型设计工具比较及实践
    一、对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点1.墨刀:墨刀是一款专注于移动端原型设计的工具,具有以下优点:操作简单。用户界面整洁、直观,特别适合初学者和需要快速迭代原型的设计师。多平台支持。提供PC端、手机端和网页版,方便用户随时随地进行原型......