一面向对象程序设计思想

1 和面向过程关注点不同

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

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

2 对象

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

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

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

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

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

Everything is Object !

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

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

4 面向对象设计步骤

提炼对象

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

对同一类事物抽象描述

属性:事物的特征和外观

行为:对象的功能

描述对象

创建对象

调用对象

5 面向对象的三大特性

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

继承:实现代码的复用

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

二 界面和业务逻辑的分离

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

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

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

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

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

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

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

三 ATM取款机、扑克牌游戏

1 ATM取款机

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

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

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

2 扑克牌游戏

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

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

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

Faceto_object_programdesign的更多相关文章

随机推荐

  1. 写给OIer们的一些话(修订版)

    我是一个高二的OIer,离我正式退役的日子已经不超过一年了.在这个时期,与其写一些回忆性的文字,不如跳出"自我"的范畴,以一种比较全局的角度和大家一起分享一些我对OI的认知和看法. ...

  2. 【ZJOI2019】线段树(线段树 & dp)

    Link UOJ LOJ Luogu Solution 很玄妙的一道题,考察了对线段树较本质的理解 然而我并不会这个所谓最可做的题 首先,虽然题目很复杂,好像每个点的标记变化都很玄学,但是我们可以深入 ...

  3. kafka命令及启动

    默认内网访问,要在外网访问的话,需要在修改config/server.properties中的配置 将listeners和advertised.listeners的值用主机名进行替换,在外用使用jav ...

  4. S3C2440从NAND Flash启动和NOR FLASH启动的问题

    1.为什么NAND FLASH不能直接运行程序     NAND FLASH本身是连接到了控制器上而不是系统总线上.CPU运行机制为:CPU启动后是要取指令执行的,如果是SROM.NOR FLASH ...

  5. 图的遍历BFS

    图的遍历BFS 广度优先遍历 深度优先遍历 可以进行标记 树的广度优先遍历,我们用了辅助的队列 bool visited[MAX_VERTEX_NUM] //访问标记数组 //广度优先遍历 void ...

  6. jsp+servlet实现美妆店铺开发

    一般的商城都有用户端和商城端两个部分,用户端就是给普通用户使用的,像我们在淘宝购物,我们就是使用的用户端:然而淘宝还分了很多个店铺,每个店铺的商品都是店老板安排人员去管理,那店老板管理自己的店铺用到的 ...

  7. xwiki升级8.8.4

    安装包下载: http://download.forge.ow2.org/xwiki/xwiki-enterprise-jetty-hsqldb-8.4.4.zip 推荐使用jetty包,方便快捷,不 ...

  8. Kubernetes【K8S】(二):搭建Kubernetes环境

    系统初始化 设置系统时区 # 设置系统时区为 亚洲/上海 [root@k8s-master01 ~]# timedatectl set-timezone Asia/Shanghai # 设置当前得UT ...

  9. 算法(Java实现)—— 动态规划算法

    动态规划算法 应用场景-0-1背包问题 背包问题:有一个背包,容量为4磅,现有物品如下 物品 重量 价格 吉他(G) 1 1500 音响(S) 4 3000 电脑(L) 3 2000 要求: 达到目标 ...

  10. 老哥你能写篇 SpringCloud Alibaba 全家桶吗? 看视频太累 太枯燥了 !

    最喜欢的一句话: 1.01的365次方=37.78343433289 >>>1 0.99的365次方= 0.02551796445229, 每天进步一点点的目标,贵在坚持 前端时间有 ...