最近有幸阅读O'Reilly的Head First Design Patterns,发现这本书的确是对Design Patterns的一种全新解读,虽然影印版阅读起来仍然不那么流畅,但是已经让我对Design Patterns有了进一步的认识,虽然接下来会很忙,但仍然计划抓紧时间把这本书学习一遍,以加深自己对Design Patterns的了解。
本书中没有照搬其他书籍对Design Patterns分类从工厂方式开始介绍的老套路,而是以一个程序员很常见的工作场景开始了Design Patterns的介绍和讨论(本书中介绍都是基本都是这样的引人深入的方法)。
截至目前(辛辛苦苦的读了7章英文),学习到的东西在这里做一个粗略的总结(以英文为准):
一、OO Principles:
1.Encapsulate what varies
2.Favor composition over inheritance
3.Program to interfaces,not implementations 看到这个原则让我想起James Gossing就曾经在别人采访中说过:如果再给他一次机会重头开发Java,那么他将去掉所有的抽象类而采用接口实现,不过他可不是对着这个原则来的,整个Patterns中都一直在告诉我们要拥抱变化,最好的方式就是解偶,而接口就是最好的解藕方式。
4.Strive for loosely coupled designs between objects that interact
5.Classes should be open for extension but closed for modification
6.Depend on abstractions.Do not depend on concrete classes
句句金句,需熟记于心,等有空的时候我再补充一些比较常见的场景以便于理解。
二、Design Toolbox
1.Strategy - defines a family of algorithms,encapthulates each one,and makes them interchangeable.Strategy lets the algorithm vary independently from clients that use it.
2.Observer - defines a one-to-many dependency between objects so that when one object changes state,all its dependents are notified and updated automatically.
3.Decorator - Attach additional responsibilities to an object dynamically.Decorators provide a flexible alternative to subclassing for extending functionality. (最常见的就是java.io包,尽管使用Decorator可能会使程序晦涩难懂,但是它仍然是使用子类来获得方法继承之外的另一个稳妥的编程手段)
4.Factory method - Define an interface for creation an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to the subclasses.(其中还包含一个Simple Factory,但是它并不是Patterns,而是一个可以帮助你将客户端与指定类解偶的方法)
5.Abstract Factory - Provide an interface for creating families of related or dependent objects without specifying their concrete classes. (Dependency Injection)
分享到:
相关推荐
笔记_HeadFirst设计模式
《Head First设计模式》是一本深受开发者喜爱的设计模式学习书籍,它以易懂且生动的方式介绍了23种经典设计模式。这些模式是软件工程中经过实践验证的最佳实践,旨在提高代码的可重用性、可读性和可维护性。下面,...
java原始中的设计模式 Gof设计模式 一个Android应用程序,该应用程序演示了以下来源...笔记。 并非所有模式都具有“ pre”版本,但是此类异常的数量很少。 导航 这些是应用程序的屏幕。 每个按钮都是自我解释的。 要显
6. 近期看过的和想看的专业书:本节列出了作者近期看过的和想看的专业书籍,包括《Clean Code》、《Head First Design Patterns》等。 7. 最近看的闲书:本节列出了作者最近看的闲书,包括《The Hitchhiker's Guide...
java-design-patterns 来自不同来源的设计模式的集合。 当需要在工作或学校中实施某种模式时,我认为这是一种供参考的备忘单。 阅读和视频资料 影片 达雷克·巴纳斯(Darek Barnas)- 图书 头先设计模式- 入门笔记 ...