面向对象分析与设计01 - 关键抽象
“关键抽象”是一个类或对象,它是问题域词汇表的一部分。确定这样的抽象的主要价值在于,它们给出了问题的边界,突出了系统中的事物-这些事物与我们的设计有关;同时,它们排除了系统之外的事物,这些事物是设计弱相关的。
确定关键抽象包含两个过程:发现和发明。
发现过程,我们学习领域专家所使用的抽象,(包括对业务对象的命名和描述、对流程及权限的描述等)
通过发明过程,我们创造了新的类和对象,它们不一定是问题域的组成部分,但在设计或实现中尤为重要。
例如:使用ATM的客户提到 帐户、取款和存款,这些词是问题域词汇表的一部分。这种系统的开发者会使用这些抽象,但也必须引入新的抽象,如数据库、列表、队列等。这些关键抽象是具体设计的结果,不属于问题域。
最后,用一组毕加索画的“公牛”,来说明关键抽象: