一面向对象程序设计思想

1 和面向过程关注点不同

过程: 程序执行流程和逻辑 (局部功能)

对象: 程序中的对象 (程序结构)

2 对象

现实世界中的实体和事物 可以看成是一种具有自身属性和功能的构件,

程序是由不同的对象组成,实现程序的功能是调用对象的功能

(在Java中,指由类创建的对象)

类(对同类事物的抽象描述)

3 如何学习面向对象程序设计思想

Everything is Object !

想到某一功能,应该想到哪一对象具备该功能

提到数据,首先想到该数据属于哪一个对象

4 面向对象设计步骤

提炼对象

分析程序中的对象有哪些(名词法)、抽象

对同一类事物抽象描述

属性:事物的特征和外观

行为:对象的功能

描述对象

创建对象

调用对象

5 面向对象的三大特性

封装:对外隐藏,对内公开(隐藏内部实现细节)高内聚,低耦合(为了保护程序的正常使用和运行)

继承:实现代码的复用

多态:同一操作,不同对象不同实现(行为)

二 界面和业务逻辑的分离

分层思想:将整个应用程序分解为若干个层次(表示层、业务层、数据访问层)。软件的需求是会改变的,

要以最少的改变以适应软件需求的改变。在系统中,有很多部分是稳定不变的。有些部分是以与改变的。

用户注册:用户输入用户名、判断用户名是否存在、判断用户名是否合法(符合制定的规则,如长度不能少于八位,

只能包含字母、数字,不能包含其他特殊字符),用户输入密码(密码符合制定的规则),两次输入密码,并且要判断两次密码是否相同。最后,

用户名不存在且符合规则,密码符合规则,且两次输入相同,然后进行注册,所谓注册就是将用户名和密码写入到数据库中。

找出系统中稳定不变的部分和易变的部分,

最根本的目的:采用分层思想,将应用程序分为多个层次,提高软件的可维护性。

三 ATM取款机、扑克牌游戏

1 ATM取款机

界面 : 显示欢迎信息、显示菜单、身份验证(只负责数据的输入和验证结果的提示,以及输入数据的合法性判断)、查询(只负责显示,

卡内余额是由业务层提供的)、取款(只负责数据的输入与显示,具体修改卡内余额、机内余额等都是业务逻辑范围)

业务:查询(只返回余额,并不决定怎么显示数据)

2 扑克牌游戏

生成扑克牌、洗牌、抽牌、比较牌的大小、输出结果

业务逻辑:生成扑克牌、洗牌、抽牌、比较牌的大小

界面:计算抽牌的界面、用户抽牌的界面、输出结果的显示

Faceto_object_programdesign的更多相关文章

随机推荐

  1. CSS图标与文字对齐的两种方法

    在平时写页面的过程中,常遇到要把小图标与文字对齐的情况.比如: 总结了两种方法,代码量都比较少. 第一种 对img设置竖直方向对齐为middle, <div> <img src=&q ...

  2. nodjs html 转 pdf

    var fs = require('fs');var pdf = require('html-pdf');//模块//读取html 文件 var html = fs.readFileSync('./s ...

  3. 前端删除多条数据,如何将多个被删除项指定key传给后台

    实际情景: 前端需要移除多个用户,这时需要根据每个用户id进行批量删除操作 前端操作: 1. 拿到所有被操作用户的信息存入数组, 例如 userlist = [user1, user2, user3] ...

  4. Linux相关介绍和安装

    目录 前言 第一章 linux介绍 1.1 linux简介 第二章 Linux起源 2.1 Unix的历史 2.2 Unix操作系统的革命 2.3 Linux系统的诞生 2.4 Linux系统的发展史 ...

  5. python 通过pip freeze、dowload打离线包及自动安装【适用于保密的离线环境】

    python的pip是其包管理工具,相当方便好用.本文只介绍pip 如何通过其freeze命令打离线包,及其离线包的安装脚本.这个知识点,特别适用于不适合连通互联网,设备需要物理隔绝,保密要求严格的客 ...

  6. 前端使用canvas生成盲水印的加密解密

    为了保障信息安全,防止重大信息泄露,并且能够锁定泄露用户,需要对页面展示的图片加入当前用户信息的盲水印,即最终图片外观看起来和原图一样,但是经过解码以后可以识别出水印信息,并且在截图后仍能进行较好的识 ...

  7. 3. 搞定收工,PropertyEditor就到这

    分享.成长,拒绝浅藏辄止.搜索公众号[BAT的乌托邦],回复关键字专栏有Spring技术栈.中间件等小而美的原创专栏供以免费学习.本文已被 https://www.yourbatman.cn 收录. ...

  8. CSRF学习

    前提环境:网站存在CSRF漏洞(也就是过于相信访问请求,只判断了用户是否存在cookie,并未判断请求的发起者) CSRF攻击原理,用户A需要转账,用户A正常向银行网站发送请求登录,登录成功后银行网站 ...

  9. kafka rebalance解决方案 -incremental cooperative协议和static membership功能

    apache kafka的重平衡(rebalance),一直以来都为人诟病.因为重平衡过程会触发stop-the-world(STW),此时对应topic的资源都会处于不可用的状态.小规模的集群还好, ...

  10. Selenium Web元素定位方法

    Selenium是用于Web应用测试的自动化测试框架,可以实现跨浏览器和跨平台的Web自动化测试.Selenium通过使用WebDriver API来控制web浏览器,每个浏览器都都有一个特定的Web ...