一面向对象程序设计思想

1 和面向过程关注点不同

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

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

2 对象

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

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

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

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

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

Everything is Object !

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

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

4 面向对象设计步骤

提炼对象

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

对同一类事物抽象描述

属性:事物的特征和外观

行为:对象的功能

描述对象

创建对象

调用对象

5 面向对象的三大特性

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

继承:实现代码的复用

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

二 界面和业务逻辑的分离

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

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

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

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

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

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

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

三 ATM取款机、扑克牌游戏

1 ATM取款机

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

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

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

2 扑克牌游戏

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

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

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

Faceto_object_programdesign的更多相关文章

随机推荐

  1. 【题解】The Great Divide [Uva10256]

    [题解]The Great Divide [Uva10256] 传送门:\(\text{The Great Divide [Uva10256]}\) [题目描述] 输入多组数据,每组数据给定 \(n\ ...

  2. CF1457D XOR-gun

    这道题真的把我秀到了,我首先猜了一波结论,打了一个可持久化 \(\text{Trie}\) 加二分的两只 \(\log_2\) 的做法,发现不能 \(PP\) ,然后就一直改到比赛结束还没改过. 然后 ...

  3. NOI Online #1 入门组 魔法

    全网都是矩阵快速幂,我只会倍增DP 其实这题与 AcWing 345. 牛站 还是比较像的,那题可以矩阵快速幂 / 倍增,这题也行. 先 \(Floyd\) 预处理两点之间不用魔法最短距离 \(d_{ ...

  4. Angular:管道和自定义管道

    ①管道的使用,更多管道在angular官网上有 <p>全部转为大写:{{'hahahah' | uppercase}}</p> <p>保留两位小数:{{1.4555 ...

  5. .net core 和 WPF 开发升讯威在线客服与营销系统:背景和产品介绍

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf-m.shengxunwei.com ...

  6. Impala队列内存参数分析

    同步发布在csdn上 问题 对Impala队列内存的几个参数分析了下,欢迎指正 队列资源池的几个内存配置 Maximum Query Memory Limit 某个队列资源池,一个查询在一个Impal ...

  7. python 协程并发下载图片

    1 import aiohttp 2 import asyncio 3 import time 4 5 async def dl_coroutine(session,url): 6 print('开始 ...

  8. VMware虚拟机安装Win7填坑

    今天本想赶紧安装Win7虚拟机做个实验,结果鼓捣了一天,写个文章填下坑. 一.Win7镜像文件下载 下载ISO镜像地址:http://msdn.itellyou.cn/ 二.安装tools VMwar ...

  9. 第六章 Sleuth--链路追踪

    修整了2天,我们继续接着上篇 第五章 Gateway–服务网关 继续来讲SpringCloud Alibaba全家桶中的 Sleuth 链路追踪 组件 喜欢记得点关注哦 6.1 链路追踪介绍 在大型系 ...

  10. 学习Python之数据类型

    格式化字符串 字符串格式化是一种非常简洁的特性,它能让我们动态更新字符串中的内容.假设我们有从服务器获取的用户信息,并希望根据该信息显示自定义消息,第一个想法是应用字符串连接之类的东西. first_ ...