`

面向对象设计的原则--转载

OO 
阅读更多
OO,我们天天做着面向对象程序的开发,我们真的OO么?OO的原则是什么?
SRP:单一职责原则
        就一个类而言,应该仅有一个引起它变化的原因
OCP:开放-封闭原则
        软件实体(类,模块,函数等)应该是可以扩展的,但不可修改
LSP: Listov替换原则
        子类型必须能够替换他们的基类型
DOP:依赖倒置原则
         抽象不应该依赖于细节,细节应该依赖于抽象
ISP:  接口隔离原则
         不应该强迫客户依赖他们不用的方法,接口属于客户,不属于他所在的类层次结构。
REP:重用发布等价原则
        重用的粒度就是发布的粒度
CCP:共同封闭原则
        包中所有类对于同一类性质的变化应该是共同封闭的,一个变化若对一个包产生影响,则将对该包中有类产生影响,而对于其他的包不造成任何影响
CRP:共同重用原则
        一个包中所有类应该是共同重用的,如果重用了包中的一个类,那么就要重要包中所有类
ADP: 无环依赖原则
        在包的依赖关系图中不允许存在环
SDP: 稳定依赖原则
        朝着稳定的方向进行依赖
SAP:稳定抽象原则
        包的抽象程度应该和其稳定程度一致
分享到:
评论

相关推荐

    二十三种设计模式【PDF版】

    有经验的面向对象设计者的确能做出良好的设计,而新手则面对众多选择无从下手,总是求助于以前使用过的非面向对象 技术。新手需要花费较长时间领会良好的面向对象设计是怎么回事。有经验的设计者显然知道一些新手所...

    JS 拼图游戏 面向对象,注释完整。

    在这段代码中,通过定义对象`PicGame`及其属性(如行数`x`、列数`y`、图片源`img`等)和方法(如`init`函数)来实现面向对象设计。 2. **HTML结构**:文档中使用`<html>`标签来定义整个HTML文档。`<head>`中包含了`...

    转载 - 26本 Ruby/Rails 相关英文图书简评

    Ruby 是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。Rails,全称为 Ruby on Rails,是基于 Ruby 语言的一个开源 Web 应用框架,它遵循“约定优于配置”(Convention over ...

    短信平台设计方案.pdf

    面向对象设计和实现的重点是多个对象的网状组织结构和协同 计算,而不是过程调用的层次结构,这样就在本质上适应了并发、分布 系统及互联网的计算特征。 2.2、系统总体框架 在整个系统的设计上,在保证系统效率的...

    C#的源码记事本初学者学习参考源程序初学者学习参考用到三层设计我是转载的

    在IT行业中,编程语言是构建数字世界的基石,而C#是一种广泛应用的面向对象的编程语言,尤其在Windows平台上的开发中占据着重要地位。本文主要针对C#的初学者,探讨一个采用三层架构设计的源码记事本项目,帮助初学...

    心理咨询网站设计方案(1).doc

    面向对象设计强调组件重用和接口分离,更适合现代软件开发的需求,特别是对于并发和分布式系统的处理。系统总体框架设计以开放、标准化、模块化、易用性和性能优化为核心,遵循“一个数据中心、一个基础平台、一套...

    本项目是基于SpringBoot的线上宠物物资购买系统,为个人毕业设计,未经允许禁止转载.zip

    6. **RESTful API**: 设计API遵循REST原则,提供JSON格式的数据交换。 7. **Security**: Spring Security可以用于处理认证和授权,保护应用的安全。 8. **Docker**: 可能使用Docker打包应用,方便部署和测试。 9. **...

    C++面试题集锦

    首先,"C++笔试大全.chm"可能包含了各种C++的基础和进阶题目,包括但不限于语法、内存管理、模板、STL(Standard Template Library)、异常处理、多态性、面向对象设计原则等。考生应熟悉C++的基本概念,如指针操作...

    C#连连看源代码(转载)

    此外,这种实践还能帮助我们更好地理解面向对象设计原则,如封装、继承和多态性,以及如何在实际项目中应用它们。总之,C#连连看源代码是一个极好的学习资源,能够让我们在编程和游戏设计的道路上更进一步。

    [转载]+[C#]+加强型音乐播放器+代码类

    除此之外,代码类的组织和设计遵循了面向对象的原则,可能会有如MediaPlayer、Song、Playlist等类,每个类都有明确的职责和封装。良好的设计模式,如单例模式(用于控制播放器实例的数量)和工厂模式(用于创建音频...

    悠索科技高校教务管理系统(转载)

    在C#这个强大的面向对象的语言背景下,该系统可能运用了以下关键知识点: 1. **Windows Forms**:作为UI(用户界面)的基础,Windows Forms用于构建桌面应用程序,提供了丰富的控件和事件处理机制,使得用户可以...

    C#.NET经典案例解析转载

    这些案例是C#编程学习的重要资源,因为它们提供了一种实践性的方法来理解面向对象编程、数据库交互、用户界面设计以及系统集成等核心概念。 首先,让我们来看看人事管理系统。在C#中开发人事管理系统涉及到员工信息...

    JAVA文章精选542个(txt) 免费分享

    阐述了Java中的方法重载(Overloading)和方法覆盖(Overriding)概念,以及运行时类型识别(多态性)在面向对象编程中的作用。 10. **SSL與數位認證.txt**: SSL(Secure Sockets Layer)和数字认证是网络安全的...

    VC6.0TOVS2005.rar_2005_MFC_vc++ 2005_visual studio_vs2005

    在函数名和变异性选项方面,VS2005引入了更多面向对象的设计原则,比如异常安全性和资源管理。例如,RAII(Resource Acquisition Is Initialization)的概念在VS2005中得到了更多的应用,智能指针如auto_ptr、unique...

    C#程序源码 屏幕雪花

    1. **C#语言基础**:C#是一种面向对象的编程语言,由微软开发,广泛用于Windows应用程序、游戏开发、Web服务等。学习此源码可以了解C#的基本语法、类结构和方法定义。 2. **图形绘制**:C#可以通过GDI+(Generic ...

Global site tag (gtag.js) - Google Analytics