面向对象设计的准则

1.模块化

对象就是模块
数据结构和操作这些数据的方法紧密地结合在一起

2.抽象

过程抽象
数据抽象:类
参数化抽象:C++的“模板”

3.信息隐藏

通过对象的封装性实现类,分离了接口与实现,支持信息隐藏

4.弱耦合

某一部分的变化对其他部分的影响降到最低程度
耦合:一个软件结构内不同模块之间互连的紧密程度
弱耦合:系统度
对象之间的耦合:交互耦合&继承耦合

5.强内聚

内聚衡量一个模块内各个元素彼此结合的紧密程度
在设计时应该力求做到高内聚
面向对象设计的3种内聚:服务内聚、类内聚、一般\特殊内聚

6.可重用

尽量使用已有的类
如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux触发连锁反应,惠及全球

所谓“连锁反应”是指,若干个相关的事物,只要一个发生变化,其他都跟着发生变化。在软件界的“圈子”里面,一般而言,“连锁反应”这个词汇是不经常使用的。 4月21日,芬兰科学院把2012年最高技术成就奖授予Li…

Diango博客--21.实现简单的全文搜索

文章目录1. 概述2. 模板:将关键词提交给服务器3. 视图:查找含有搜索关键词的文章4. 视图:绑定 URL1. 概述 搜索是一个复杂的功能,但对于一些简单的搜索任务,我们可以使用 Django Model 层提供的一些内置方法来完成&am…

解决Cannot change version of project facet Dynamic web module to 2.5

见 : http://blog.csdn.net/steveguoshao/article/details/38414145 我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一般现在至少都是2.5…

shell编程 之 test命令

shell编程里的测试test命令基本可以分为3种数据类型,每种都不一样。个人更倾向于理解为条件语句的写法规则,就是test加条件加判断语句。 1 数值类型 基本可以分为6个判断:-eq等于,-ne不等于,-gt大于,-lt小于&#xff0…

HTTP 协议知识点总结(一)

在许多大公司的面试中,经常会重点考察面试者的计算机基础知识。所以对于在计算机网络、数据结构、操作系统上花费更多的时间和精力,是完全值得的。HTTP 作为应用最为广泛的网络协议,不论前端和后端都需要经常接触。最近决定对 HTTP 进行了一些…

阶乘的精确值 大数问题

输入不超过1000的正整数n,输出n的阶乘的精确结果 样例输入:30 样例输出:265252859812191058636308480000000 分析: 为了保存结果,需要分析1000!有多大。用计算器算一算不难知道,1000&#x…

Diango博客--22.Django Haystack 全文检索与关键词高亮

文章目录1. Django Haystack 简介2. 安装 django-haystack和elasticsearch 23. 构建容器来运行 elasticsearch 服务4. 配置 Haystack5. 处理数据6. 配置 URL7. 修改搜索表单8. 创建搜索结果页面9. 高亮关键词10. 建立索引文件11. 修改搜索引擎为中文分词12. 防止标题被截断13. …

Vim和Vi的常用命令

Vim 文本编辑器 1、Vim 和 Vi: 两者都是多模式编辑器; Vim 是 Vi 升级版,再兼容 Vi 所有指令的同时增加了一些新功能支持; 特点: 语法加亮:使用不同的颜色加亮代码; 多级撤销:Vi 只能撤销一次操…

oracle中 sql语句:start with .. connect by prior.. 用法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 我们经常会将一个比较复杂的目录树存储到一个表中。或者将一些部门存储到一个表中,而这些部门互相有隶属关系。这个时候你就…

多重继承和单重继承

多重继承(Multiple Inheritance, MI)指的是一个类别可以同时从多于一个父类继承行为与特征的功能。与单一继承相对,单一继承指一个类别只可以继承自一个父类。

3分钟学会SVN:SVN快速上手

选择SVN客户端 Windows平台 TortoiseSVN:也叫乌龟SVN,Windows上最流行的SVN客户端,安装后你的右键就会多了几个SVN相关的菜单,非常方便Eclipse插件:在Eclipse中集成SVN插件,适合使用Eclipse开发的用户&…

flask框架(三):flask配置文件

flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为:{DEBUG: get_debug_flag(defaultFalse), 是否开启Debug模式TESTING: False, …

C语言可变参数全解

cstdarg(stdarg.h)可变参数的处理 这个头文件定义了一些宏,可以通过这些宏来逐个访问被调函数的没有名字的参数列表,这些参数的个数 和类型都是不知道的。 一个函数可以通过包含一个逗号和三个点(,...)接收可变数量的额外参数,而不需…

Diango博客--23.单元测试:测试 blog 应用

文章目录1. 前言2. 搭建测试环境3. 测试模型4. 测试视图5. 测试模板标签6. 测试辅助方法和类1. 前言 我们博客功能越来越来完善了,但这也带来了一个问题,我们不敢轻易地修改已有功能的代码了! 我们怎么知道代码修改后带来了预期的效果&…

一般与特殊结构关系 整体与部分结构关系

一般与特殊结构关系又称为分类结构关系,是“is a”关系。 例如:飞机与交通工具都是类,飞机是一种特殊的交通工具。他们之间是“is a”关系。 上层类体现一般性和共性,下层类体现特殊性和具体性。 用这种结构关系来描述现实世界…

简单版:带干扰线的图形验证码生成

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.生成工具类; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; im…

图片格式转换工具与方法

2019独角兽企业重金招聘Python工程师标准>>> 使用ffmpeg进行格式转换 1.jpg 转 I420 ffmpeg -i 001.jpg -pix_fmt yuv420p 001_I420_fromJPG.yuv 2.png 转 I420 ffmpeg -i 222.png -pix_fmt yuv420p 222_I420_fromPNG.yuv 3.bmp 转 I420 ffmpeg -i xxx.bmp -pix_fmt…

Diango博客--24.单元测试:测试评论应用

文章目录1. 前言2. 数据基类3.测试 Comment Model4. 测试视图函数5. 测试模板标签1. 前言 comments应用的测试和blog应用测试的套路是一样的。 先来建立测试文件的目录结构。首先在 comments 应用的目录下建立一个名为 tests 的 Python 包,然后删除 comments 应用…

面向对象设计使用语言选择

面向对象设计的结果既可以用面向对象语言、也可以用非面向对象语言实现。 使用面向对象语言时,由于语言本身充分支持面向对象概念的实现,因此,编译程序可以自动把面向对象概念映射到目标程序中。 使用非面向对象语言编写面向对象程序&#xf…