java设计模式
zz_i80
这个作者很懒,什么都没留下…
展开
-
单例模式的5种实现
声明:写这个内容主要是便于自己记忆和理解,这边有更好的文章http://www.tekbroaden.com/singleton-java.html第一种:饿汉模式--即类加载时就进行实例化,无论是否会用到该实例,都要预先加载,而我们一般希望延迟加载,减小负载。 public class Singleton { //恶汉模式,即类加载时就创建实例 //1.私有化构造器...原创 2018-01-05 20:02:47 · 253 阅读 · 0 评论 -
Head First设计模式系列三:装饰者模式
星巴兹咖啡的故事我们有一个饮料抽象类,各种类型的咖啡继承这个饮料类此外我们还有各种调料,调料不同收费也不一样,如果每一种都设计成一个子类,那么就会有很多的类将各种调料写入超类中,超类计算调料的价格问题在于,如果有新的调料,那么又要修改超类代码,或者有人点了2份相同的调料,代码就会有问题。开放封闭原则类应该对扩展开放,对修改封闭装饰者模式拿一个深培咖啡对象--...原创 2018-12-26 15:13:31 · 158 阅读 · 0 评论 -
Head First设计模式系列四:工厂方法模式和抽象工厂模式
先占个坑原创 2018-12-27 11:16:12 · 253 阅读 · 0 评论 -
Head First设计模式系列五:单例模式
单例模式顾名思义就是该类只能有一个实例对象。那么怎么才能只建立一个对象呢?我们知道对象可以用new来产生,一般来说一个类是可以实例化很多次的,但是如果这个类的构造方法是私有的呢?那么只能在类的内部才能创建实例,因此可以通过这种方式来实现单例模式:1.类的构造方法是私有的;2.类有一个自己的静态实例变量引用,并只会创建一次该实例变量;3.类提供一个静态的方法,该方法提供唯一的类对象。...原创 2018-12-27 11:46:59 · 243 阅读 · 0 评论 -
Head First设计模式系列一:策略模式
模拟鸭子类鸭子超类有quack和swim两个行为,还有一个display的抽象方法,由子类负责展示。类图如下产生变化现在需要让鸭子可以fly,面对这一变化,我们需要考虑的问题:1.如果直接在父类中添加fly方法,子类如果直接继承,那么有些不会飞的鸭子也有这一行为了;2.如果在子类中重写fly方法,那么代码会有很多的重复,运行时的行为不容易改变;3.如果使用接口,将fly...原创 2018-12-26 11:02:41 · 187 阅读 · 0 评论 -
Head First设计模式系列二:观察者模式
气象监测应用现在有一个WeatherData对象,他有以下的一些方法,现在要通过这个对象,建立三个布告板:目前状况,气象统计和天气预报这个问题在于WeatherData对象一旦有新的测量值,就会去更新面板,此外以后还会增加新的面板(WeatherData对象应该对修改封闭,不然每次增加面板就要修改WeatherData的代码会很麻烦)。错误示例观察者模式类似于报纸的订阅...原创 2018-12-26 14:06:30 · 201 阅读 · 0 评论