Faceto_object_programdesign
一面向对象程序设计思想
1 和面向过程关注点不同
过程: 程序执行流程和逻辑 (局部功能)
对象: 程序中的对象 (程序结构)
2 对象
现实世界中的实体和事物 可以看成是一种具有自身属性和功能的构件,
程序是由不同的对象组成,实现程序的功能是调用对象的功能
(在Java中,指由类创建的对象)
类(对同类事物的抽象描述)
3 如何学习面向对象程序设计思想
Everything is Object !
想到某一功能,应该想到哪一对象具备该功能
提到数据,首先想到该数据属于哪一个对象
4 面向对象设计步骤
提炼对象
分析程序中的对象有哪些(名词法)、抽象
对同一类事物抽象描述
属性:事物的特征和外观
行为:对象的功能
描述对象
创建对象
调用对象
5 面向对象的三大特性
封装:对外隐藏,对内公开(隐藏内部实现细节)高内聚,低耦合(为了保护程序的正常使用和运行)
继承:实现代码的复用
多态:同一操作,不同对象不同实现(行为)
二 界面和业务逻辑的分离
分层思想:将整个应用程序分解为若干个层次(表示层、业务层、数据访问层)。软件的需求是会改变的,
要以最少的改变以适应软件需求的改变。在系统中,有很多部分是稳定不变的。有些部分是以与改变的。
用户注册:用户输入用户名、判断用户名是否存在、判断用户名是否合法(符合制定的规则,如长度不能少于八位,
只能包含字母、数字,不能包含其他特殊字符),用户输入密码(密码符合制定的规则),两次输入密码,并且要判断两次密码是否相同。最后,
用户名不存在且符合规则,密码符合规则,且两次输入相同,然后进行注册,所谓注册就是将用户名和密码写入到数据库中。
找出系统中稳定不变的部分和易变的部分,
最根本的目的:采用分层思想,将应用程序分为多个层次,提高软件的可维护性。
三 ATM取款机、扑克牌游戏
1 ATM取款机
界面 : 显示欢迎信息、显示菜单、身份验证(只负责数据的输入和验证结果的提示,以及输入数据的合法性判断)、查询(只负责显示,
卡内余额是由业务层提供的)、取款(只负责数据的输入与显示,具体修改卡内余额、机内余额等都是业务逻辑范围)
业务:查询(只返回余额,并不决定怎么显示数据)
2 扑克牌游戏
生成扑克牌、洗牌、抽牌、比较牌的大小、输出结果
业务逻辑:生成扑克牌、洗牌、抽牌、比较牌的大小
界面:计算抽牌的界面、用户抽牌的界面、输出结果的显示
Faceto_object_programdesign的更多相关文章
随机推荐
- 二、java多线程编程核心技术之(笔记)——如何停止线程?
1.异常法 public class MyThread extends Thread { @Override public void run() { super.run(); try { for (i ...
- uniapp中使用picker中的注意事项
APP端中picker点击后不弹出: 1.请确保picker标签里面嵌套了一个view,并且view里面有值 2.请确保picker中的默认值的格式跟该picker类型的值对应 例如下面: <v ...
- css样式规则
在css样式规则中: 1.选择器用于指定CSS样式作用的HTML对象,花括号内是对该对象设置的具体样式. 2.属性和属性值以"键值对"的形式出现. 3.属性是对指定的对象设置的样式 ...
- oracle 常用语句3
- oracle 函数 select sign(-3),sign(3), sign(0) from dual; select ceil(3.7) from dual; select floor(3.7 ...
- js上 十五、数组-1
十五.数组-1 #1.什么是数组 组:由多个成员构成的一个集体. 数组:数组是值的有序集合 值就是前面所讲过的这些数据(各种数据类型的都可以) 是数组中,每一个值(如100,'js',true)都称之 ...
- oranges 笔记第六章
OS 第六次实验随笔 第六章6.1-6.3相关的问题 进程状态保存与恢复 哪些状态 何时保存 保存在哪 如何恢复 特权级变换 用户进程到内核 内核回到用户进程 再次理解TSS .堆栈 从外环进入内环( ...
- 多任务-python实现-使用生成器完成多任务(2.1.14)
@ 目录 1.注意 2. 代码 关于作者 1.注意 先定义函数,函数里面放一个yiled 主函数生成该对象 执行while循环 调用生成器对象的next 因为每次调用next,不会继续执行,从而 完成 ...
- #2020征文-手机#深鸿会深大小组:HarmonyOS手机游戏—数字华容道
目录: 前言 概述 正文 创建项目 实现初始界面布局 实现数字的随机打乱 实现滑动或点击调换数字 实现游戏成功界面 结语 源码包 前言 12月16号HarmonyOS2.0手机开发者Beta版已经发布 ...
- Asp.net webapi 判断请求参数是否为空简易方法 Model Validation 判断请求参数是否为空
通常情况下,对于那些经常为别人提供数据接口的开发人员来说,对于调用方传递过来的参数都会有验证处理.例如: if (string.IsNullOrEmpty(entity.Name)) { //当姓名为 ...
- GDI+中发生一般性错误 Winform Image.Save(mstream, ImageFormat.Png)引发
在处理图片时,读取本地图像文件,进行另存时发生GDI+中发生一般性错误 . 具体情况如下: 用OpenFileDialog打开图像文件,文件名为filename StreamReader sr = n ...