问题描述
在哪里可以找到基于设计原理描述不同问题陈述和针对每个问题的可能的OOD类层次结构解决方案(讨论优缺点和折衷方案)的书或网站(面向Javs代码)?
所以我可以看到在遵循设计原则(抽象的单一级别,封装变化的内容等)的同时,如何使用语言特定的构造(接口,抽象类等)应用不同的概念(抽象,继承,多态性,封装)。实现可重用,灵活的更改系统。
解决方法
关于该主题的经典书籍是Gamma,Helm,Johnson和Vlissides撰写的《设计模式:可重用的面向对象软件的元素》。在其中,作者列出了几十种模式,他们发现人们反复使用它们来解决相同类型的问题。第一部分是一个示例,本书的其余部分是各种模式的参考。
另一本不错的书是Freeman和Freeman的Head First Design Pattern。许多人发现它更具可读性。