Faceto_object_programdesign
一面向对象程序设计思想
1 和面向过程关注点不同
过程: 程序执行流程和逻辑 (局部功能)
对象: 程序中的对象 (程序结构)
2 对象
现实世界中的实体和事物 可以看成是一种具有自身属性和功能的构件,
程序是由不同的对象组成,实现程序的功能是调用对象的功能
(在Java中,指由类创建的对象)
类(对同类事物的抽象描述)
3 如何学习面向对象程序设计思想
Everything is Object !
想到某一功能,应该想到哪一对象具备该功能
提到数据,首先想到该数据属于哪一个对象
4 面向对象设计步骤
提炼对象
分析程序中的对象有哪些(名词法)、抽象
对同一类事物抽象描述
属性:事物的特征和外观
行为:对象的功能
描述对象
创建对象
调用对象
5 面向对象的三大特性
封装:对外隐藏,对内公开(隐藏内部实现细节)高内聚,低耦合(为了保护程序的正常使用和运行)
继承:实现代码的复用
多态:同一操作,不同对象不同实现(行为)
二 界面和业务逻辑的分离
分层思想:将整个应用程序分解为若干个层次(表示层、业务层、数据访问层)。软件的需求是会改变的,
要以最少的改变以适应软件需求的改变。在系统中,有很多部分是稳定不变的。有些部分是以与改变的。
用户注册:用户输入用户名、判断用户名是否存在、判断用户名是否合法(符合制定的规则,如长度不能少于八位,
只能包含字母、数字,不能包含其他特殊字符),用户输入密码(密码符合制定的规则),两次输入密码,并且要判断两次密码是否相同。最后,
用户名不存在且符合规则,密码符合规则,且两次输入相同,然后进行注册,所谓注册就是将用户名和密码写入到数据库中。
找出系统中稳定不变的部分和易变的部分,
最根本的目的:采用分层思想,将应用程序分为多个层次,提高软件的可维护性。
三 ATM取款机、扑克牌游戏
1 ATM取款机
界面 : 显示欢迎信息、显示菜单、身份验证(只负责数据的输入和验证结果的提示,以及输入数据的合法性判断)、查询(只负责显示,
卡内余额是由业务层提供的)、取款(只负责数据的输入与显示,具体修改卡内余额、机内余额等都是业务逻辑范围)
业务:查询(只返回余额,并不决定怎么显示数据)
2 扑克牌游戏
生成扑克牌、洗牌、抽牌、比较牌的大小、输出结果
业务逻辑:生成扑克牌、洗牌、抽牌、比较牌的大小
界面:计算抽牌的界面、用户抽牌的界面、输出结果的显示
Faceto_object_programdesign的更多相关文章
随机推荐
- CSS图标与文字对齐的两种方法
在平时写页面的过程中,常遇到要把小图标与文字对齐的情况.比如: 总结了两种方法,代码量都比较少. 第一种 对img设置竖直方向对齐为middle, <div> <img src=&q ...
- nodjs html 转 pdf
var fs = require('fs');var pdf = require('html-pdf');//模块//读取html 文件 var html = fs.readFileSync('./s ...
- 前端删除多条数据,如何将多个被删除项指定key传给后台
实际情景: 前端需要移除多个用户,这时需要根据每个用户id进行批量删除操作 前端操作: 1. 拿到所有被操作用户的信息存入数组, 例如 userlist = [user1, user2, user3] ...
- Linux相关介绍和安装
目录 前言 第一章 linux介绍 1.1 linux简介 第二章 Linux起源 2.1 Unix的历史 2.2 Unix操作系统的革命 2.3 Linux系统的诞生 2.4 Linux系统的发展史 ...
- python 通过pip freeze、dowload打离线包及自动安装【适用于保密的离线环境】
python的pip是其包管理工具,相当方便好用.本文只介绍pip 如何通过其freeze命令打离线包,及其离线包的安装脚本.这个知识点,特别适用于不适合连通互联网,设备需要物理隔绝,保密要求严格的客 ...
- 前端使用canvas生成盲水印的加密解密
为了保障信息安全,防止重大信息泄露,并且能够锁定泄露用户,需要对页面展示的图片加入当前用户信息的盲水印,即最终图片外观看起来和原图一样,但是经过解码以后可以识别出水印信息,并且在截图后仍能进行较好的识 ...
- 3. 搞定收工,PropertyEditor就到这
分享.成长,拒绝浅藏辄止.搜索公众号[BAT的乌托邦],回复关键字专栏有Spring技术栈.中间件等小而美的原创专栏供以免费学习.本文已被 https://www.yourbatman.cn 收录. ...
- CSRF学习
前提环境:网站存在CSRF漏洞(也就是过于相信访问请求,只判断了用户是否存在cookie,并未判断请求的发起者) CSRF攻击原理,用户A需要转账,用户A正常向银行网站发送请求登录,登录成功后银行网站 ...
- kafka rebalance解决方案 -incremental cooperative协议和static membership功能
apache kafka的重平衡(rebalance),一直以来都为人诟病.因为重平衡过程会触发stop-the-world(STW),此时对应topic的资源都会处于不可用的状态.小规模的集群还好, ...
- Selenium Web元素定位方法
Selenium是用于Web应用测试的自动化测试框架,可以实现跨浏览器和跨平台的Web自动化测试.Selenium通过使用WebDriver API来控制web浏览器,每个浏览器都都有一个特定的Web ...