在软件开发中,设计常常被认为是编程之前要完成的步骤。但并不是这样的,在实际开发中,分析、编程和设计常常会相互重叠、融合和交织在一起。在本书中将同时涵盖设计和编程问题,而不会刻意将它们分开。好在Python的优势之一就是,它天然具备清楚表达设计的能力。
在本章中,我们将讨论如何从产生一个好的想法到开始编程。在开始编程之前,我们将创建一些设计组件(比如流程图)来帮助我们厘清思路。
本章将涉及以下主题:
· 什么是面向对象。
· 面向对象设计和面向对象编程之间的区别。
· 面向对象设计的基本原则。
· 统一建模语言 ( Unified Modeling Language , UML )的基础知识及要避免的问题。
我们还将使用“4+1”架构视图模型来介绍本书的面向对象设计案例,将涉及以下主题:
· 经典机器学习应用概述,著名的鸢尾花分类问题。
· 分类器的处理过程和上下文。
· 画出两种看起来足以解决问题的类图。