“关键抽象”是一个类或对象,它是问题域词汇表的一部分。确定这样的抽象的主要价值在于,它们给出了问题的边界,突出了系统中的事物-这些事物与我们的设计有关;同时,它们排除了系统之外的事物,这些事物是设计弱相关的。

确定关键抽象包含两个过程:发现和发明。

发现过程,我们学习领域专家所使用的抽象,(包括对业务对象的命名和描述、对流程及权限的描述等)

通过发明过程,我们创造了新的类和对象,它们不一定是问题域的组成部分,但在设计或实现中尤为重要。

例如:使用ATM的客户提到 帐户、取款和存款,这些词是问题域词汇表的一部分。这种系统的开发者会使用这些抽象,但也必须引入新的抽象,如数据库、列表、队列等。这些关键抽象是具体设计的结果,不属于问题域。

最后,用一组毕加索画的“公牛”,来说明关键抽象:

转载于:https://www.cnblogs.com/ggggdiu/p/7195934.html

面向对象分析与设计01 - 关键抽象相关推荐

  1. 面向对象分析和设计的几个关键步骤_(豁然开朗)《面向对象分析与设计》读书笔记 (4)- 分类...

    目录 分类 正确分类的重要性 分类的困难 分类的增量和迭代本质 确定类和对象 经典方法 && 现代方法 (种) 面向对象分析 (主要识别对象) 关键抽象和机制 确定关键抽象 识别机制 ...

  2. UML2面向对象分析与设计 -- 面向对象思维(概念、面向对象技术的发展历史、对象和类、面向对象技术的相关原则:抽象 封装 分解 泛化 多态 分层 复用)

    文章目录 1. UML2面向对象分析与设计 学习目标 2. 面向对象思维 2.1 学习目标 2.2 什么是面向对象 2.3 面向对象技术的发展历史 2.4 面向对象技术的优势 2.4.1 便于沟通:在 ...

  3. 面向对象分析与设计--遛狗玩

    这篇文章焦点并不在于继承以及多态性或者各种炫酷的设计模式上面,也不在与对未来的预测,而在于分析最基本的封装,提取类,组合 人遛狗的最简形式 public class People {public st ...

  4. 面向对象分析与设计的底层逻辑

    面向对象是符合人认识事物的基本方法 人是怎么认识事物的 在面向对象出现之前,已有面向过程的分析方法,为什么面向对象被提出了呢?究其本质原因,人们发现面向过程并不是按照人正常认识事物的方式去分析软件,那 ...

  5. 视频教程-面向对象分析与设计-软件设计

    面向对象分析与设计 在企业从事软件开发.架构设计.项目经理10年: 高校从教20余年,为本科生授课10余门; 组织项目开发15余项 姜宁康 ¥168.00 立即订阅 扫码下载「CSDN程序员学院APP ...

  6. 面向对象分析与设计(OOAD)

    面向对象分析与设计(OOAD) 概述 人是怎么认识事物的 分类与分层的两种思维 问题域到解空间的映射 软件生命周期 要解决的问题 三个一致性 面向对象分析与设计过程 对象从哪里来 发现对象的方法 组织 ...

  7. 面向对象分析与设计知识点总结

    文章目录 第一部分 概述 第1章 面向对象方法概论 1.1 面向对象方法定义 1.2 面向对象方法基本特点 1.3 面向对象的基本概念与原则 1.4 面向对象方法与传统方法比较 1.5 思考题 第二部 ...

  8. 面向对象分析与设计中的基本事件处理的机制及其优缺点对比

    xjtuer最好不要抄,五次作业都是去年优秀作业,如果因为全抄被老师逮住全给0分就得不偿失了,放在这里是给大家一个思路不用再去查找很多资料,了解之后再自己总结写一写 面向对象分析与设计中的基本事件处理 ...

  9. 笨办法学python3 学习笔记 习题43 基本的面向对象分析和设计

    习题43 基本的面向对象分析和设计 通过面向对象编程(OOP)构建一些东西的流程(常用)(自顶向下) 把要解决的问题写下来,或者画出来. 将第一条中的关键概念提取出来并加以研究. 创建一个类层次结构和 ...

最新文章

  1. swift java混合,如何在Swift中连接或合并数组?
  2. Eclipse启动失败:No java virtual machine was found after searching the follwing locations
  3. UE把环境变量Path改了
  4. mysql编辑工具wf_轻松构建自定义WF设计器
  5. JavaScript_AMD规范
  6. 全面对比 MATLAB、Julia、Python,谁在科学计算中更胜一筹?
  7. 【r语言】如何将直方图和一条曲线画在一起(叠在一张图上)
  8. 遇到这样的程序员,你怎么办?
  9. 【二分+二维前缀和】Largest Allowed Area
  10. KVM halt-polling机制分析
  11. 今天我点亮了CSDN博客专家殊荣
  12. Performance Engineering of Software Systems (一)——准备工作
  13. Retinex算法的C++/opencv实现
  14. 编写Java脚本统计工程代码总行数
  15. DWI_preprocessing DTI_reduce commands
  16. GPU基本介绍与各GPU性能、价格比较
  17. python 图像识别游戏_基于Python的浏览器图像识别
  18. shopee商家入驻需要什么条件?注册虾皮shopee网店其实非常简单
  19. 商票到期不兑付逾期怎么办
  20. 小米10系统版本Android,小米10android11稳定版

热门文章

  1. PageRank算法实现
  2. 初识——雷达通信一体化技术
  3. 屏幕分辨率 VGA、HVGA、QVGA、WVGA、WQVGA
  4. 写给‘真‘零经验的童鞋学习编程的建议
  5. CATTI 三级笔译考试准备
  6. matlab趋势分析法,趋势分析法案例.pdf
  7. zynq 7000 的HDMI 显示实验
  8. centos7 输入 ifconfig 不显示 ip 地址 连接不上的解决方法(亲测成功)
  9. 8255A控制八位七段LED数码管
  10. 杰理zHiUSB设备功能【篇】