Faceto_object_programdesign
一面向对象程序设计思想
1 和面向过程关注点不同
过程: 程序执行流程和逻辑 (局部功能)
对象: 程序中的对象 (程序结构)
2 对象
现实世界中的实体和事物 可以看成是一种具有自身属性和功能的构件,
程序是由不同的对象组成,实现程序的功能是调用对象的功能
(在Java中,指由类创建的对象)
类(对同类事物的抽象描述)
3 如何学习面向对象程序设计思想
Everything is Object !
想到某一功能,应该想到哪一对象具备该功能
提到数据,首先想到该数据属于哪一个对象
4 面向对象设计步骤
提炼对象
分析程序中的对象有哪些(名词法)、抽象
对同一类事物抽象描述
属性:事物的特征和外观
行为:对象的功能
描述对象
创建对象
调用对象
5 面向对象的三大特性
封装:对外隐藏,对内公开(隐藏内部实现细节)高内聚,低耦合(为了保护程序的正常使用和运行)
继承:实现代码的复用
多态:同一操作,不同对象不同实现(行为)
二 界面和业务逻辑的分离
分层思想:将整个应用程序分解为若干个层次(表示层、业务层、数据访问层)。软件的需求是会改变的,
要以最少的改变以适应软件需求的改变。在系统中,有很多部分是稳定不变的。有些部分是以与改变的。
用户注册:用户输入用户名、判断用户名是否存在、判断用户名是否合法(符合制定的规则,如长度不能少于八位,
只能包含字母、数字,不能包含其他特殊字符),用户输入密码(密码符合制定的规则),两次输入密码,并且要判断两次密码是否相同。最后,
用户名不存在且符合规则,密码符合规则,且两次输入相同,然后进行注册,所谓注册就是将用户名和密码写入到数据库中。
找出系统中稳定不变的部分和易变的部分,
最根本的目的:采用分层思想,将应用程序分为多个层次,提高软件的可维护性。
三 ATM取款机、扑克牌游戏
1 ATM取款机
界面 : 显示欢迎信息、显示菜单、身份验证(只负责数据的输入和验证结果的提示,以及输入数据的合法性判断)、查询(只负责显示,
卡内余额是由业务层提供的)、取款(只负责数据的输入与显示,具体修改卡内余额、机内余额等都是业务逻辑范围)
业务:查询(只返回余额,并不决定怎么显示数据)
2 扑克牌游戏
生成扑克牌、洗牌、抽牌、比较牌的大小、输出结果
业务逻辑:生成扑克牌、洗牌、抽牌、比较牌的大小
界面:计算抽牌的界面、用户抽牌的界面、输出结果的显示
Faceto_object_programdesign的更多相关文章
随机推荐
- 堆叠注入tips
漏洞成因 使用mysqli_multi_query()这种支持多语句执行的函数 使用PDO的方式进行数据查询,创建PDO实例时PDO::MYSQL_ATTR_MULTI_STATEMENTS设置为tr ...
- 关于Android手机CPU不同架构的问题
1.共有7种架构 armeabiv-v7a: 第7代及以上的 ARM 处理器.2011年15月以后的生产的大部分Android设备都使用它. arm64-v8a: 第8代.64位ARM处理器,很少设备 ...
- masterha_check_repl --conf=/etc/mha/app1.cnf检查错误
[mysql@node3 ~]$ masterha_check_repl --conf=/etc/mha/app1.cnf Tue Jul 7 22:43:26 2020 - [warning] Gl ...
- 有了Git这个功能,再也不需要依赖IDE了!
大家好,今天给大家介绍一个隐藏的功能--搜索. 我们在写代码的时候经常遇到的一种情况就是,我们想要知道某一个函数是怎么定义的,这样我们才能知道该如何调用它.如果代码少的话我们当然可以自己人肉查找,但是 ...
- windows jupyter lab中.ipynb转中文PDF
在jupyter lab中,File-Export Notebook as-Export Notebook to PDF,可以导出成PDF格式的文档,但在操作前需要安装些程序.1. 安装pandocA ...
- bugku 之 crypto:进制转换的python脚本
题目如下: text.txt的内容: 知识点:python怎么做进制转换 除了自己按照计算方法写一遍进制转换,可以用python自带的强制转换: int(a,num) 其中,int是转换成十进制整数类 ...
- Java 持久层框架之 MyBatis
MyBatis 简介 MyBatis 是一个基于 Java 的持久层框架,它内部封装了 JDBC,使开发者只需关注 SQL 语句本身,而不用再花费精力去处理诸如注册驱动.创建 Connection.配 ...
- 太酷炫了!!我会Python 导包八种方法,你呢?
1. 直接 import 人尽皆知的方法,直接导入即可 >>> import os >>> os.getcwd() '/home/wangbm'复制代码 与此类似的 ...
- Python批量创建word文档(1)- 纯文字
Python创建word文档,任务要求:小杨在一家公司上班,每天都需要给不同的客户发送word文档,以告知客户每日黄金价格.最后贴上自己的联系方式.代码如下: 1 ''' 2 #python根据需求新 ...
- .NET Core 使用MediatR CQRS模式 读写分离
前言 CQRS(Command Query Responsibility Segregation)命令查询职责分离模式,它主要从我们业务系统中进行分离出我们(Command 增.删.改)和(Query ...