
设计模式
文章平均质量分 78
thepeakofmountain
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《Head First 设计模式》之单例模式
单例模式确保一个类只有一个实例,并提供一个全局访问点。 而由于单例模式只有一个类,类图就算了。这里只给出正解,对于单线程中可以用,但是多线程中确不能使用的代码,相信任意一本书含有danlimoshi都会介绍,就连《剑指Offer》中也给出了。 1.使用“急切”的创建实例,而不用延迟实例化的做法。 package singleton; public class Singleton {原创 2014-07-16 22:35:50 · 684 阅读 · 0 评论 -
《Head First 设计模式》之工厂方法模式
书上举的例子讲的是创建各个不同城市的PizzaStore的例子,感觉不是一两句话讲的清的,还是直接看模式的定义吧,然后对比实际的例子返回到定义和类图,这样应该会更有感觉。 工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类 下面的代码和书上的代码有出入,只是为了反映工厂方法的基本,没有书上的全,如果需要全部的代码,还是看书对应的源代码原创 2014-07-15 22:38:18 · 837 阅读 · 0 评论 -
《Head First 设计模式》之抽象工厂模式
《head first》书上举的例子讲的还是Pizza的例子,只不过这次是用的原料来模拟抽象共工厂模式,类太多,感觉还是大话的这个例子更贴近一点,类相对来说也少,更加清晰。大话上的例子说的是利用抽象工厂模式模拟实现不同数据库的数据访问。 抽象工厂模式提供了一个接口,用于创建相关或依赖对象的家族,而不需要明确制定具体类。 感觉看例子还是非常容易懂的。 1.首先是两个实体类,此处只列出U原创 2014-07-16 21:46:55 · 1688 阅读 · 0 评论 -
《Head First 设计模式》之模板方法模式
书上举的例子是,在准备喝咖啡时,我们的步骤是 1.把水煮沸 2.用沸水冲泡咖啡 3.把咖啡倒进杯子 4.加糖和牛奶 喝茶的方式时 1.把水煮沸 2.用沸水浸泡茶叶 3.把茶倒进杯子 4.加柠檬 直接写代码就是,代码中的……代表prepareRecipe中四个方法的具体实现,其实感觉有外观模式的感觉 package templatemethod; public cla原创 2014-07-18 21:51:18 · 759 阅读 · 0 评论 -
《Head First设计模式》之策略模式
前段时间研究了数据结构,最近一段时间在看设计模式的书,感觉还是有些收获的,所以不才妄自拙笔打算写些设计模式的博客,和志同道合的朋友一起学习。 如果看过了《大话设计模式》和《head first 设计模式》的话,本文参考这两本书,个人推荐head first的书,因为它用的语言是Java,大话用的是C#,主要原因还是head first的书总结的更全一些,特别是思考的过程和there a原创 2014-07-09 22:32:37 · 767 阅读 · 0 评论 -
《Head first 设计模式》之装饰模式
今天要分享的是装饰模式。 书上举的例子是:对于不同口味的咖啡怎么收费的问题,首先抽象出来了一个Beverage饮料类,然后怎么实现让不同口味的咖啡实现不同的收费,比如要一杯加milk的decaf,要一杯soy的houseblend……。 这里直接引入正题,装饰者模式:动态的将责任附加到对象上。如要扩展功能,装饰者提供了比继承更能有弹性的替代方案。 1.抽象的Beverage,相当于C原创 2014-07-11 23:13:00 · 585 阅读 · 0 评论 -
《Head First 设计模式》之简单工厂
书上举的例子是:对于不同类型的Pizza,怎么实例化该类型的Pizza,首先使用的是简单工厂,书上说着其实不是一种设计模式,只是一种编程习惯,简单工厂并不复杂,一看就懂,只不过原来我们可能吧所以的方法融合在一个类中,现在简单工厂是将生产工厂的方法独立在一个类中。 1.我们先看抽象出来的Pizza类 package simplefactory; public class Pizza原创 2014-07-12 22:55:56 · 568 阅读 · 0 评论 -
《Head First 设计模式》之观察者模式
今天要分享的是观察者模式。 书上举的例子是: 此系统的三个部分是气象站(获取实际气象数据的物理装置)、WeatherData对象(追踪来自气象站的数据,并更新布告板)和布告板(显示目前天气状况给用户看) 实际就是利用观察者模式建立一个应用,利用WeatherData对象取得数据,并更新三个布告板:目前状况、气象统计和天气预报。 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变原创 2014-07-11 21:07:47 · 629 阅读 · 0 评论