
设计模式应用
文章平均质量分 71
CodeEvil
这个作者很懒,什么都没留下…
展开
-
设计模式之策略模式:模拟鸭子
package firstPro;/*headfirst 设计模式第一章节 策略模式,模拟鸭子游戏,由于鸭子的颜色种类固定,不经常变动,所以把颜色相关函数放在超类Duck中,由于 鸭子的fly和kua两个行为经常要变更,或者增加新的表现行为,大致先用以下两种方案: 方案一:如果把该行为也放在Duck超类,以后每添加一个新行为,则所有子类都会继承该行为,包括那些不想添加该行为的子类,牵一发而...原创 2018-03-24 14:23:28 · 2402 阅读 · 0 评论 -
设计模式之观察者模式:天气布告板
package firstPro;/* headfirst设计模式 第二章节 观察者模式,实现了一对多的关系,观察者模式分为主题(subject)和观察者(observer)两个模块,观察者可以 看做是订阅消息的人,主题可以看做推送消息机构,机构有了新消息会立即推送给订阅者,数据是属于消息机构的,订阅者可以取消订阅,就不会 收到相关消息,未订阅者也可以注册添加为新的订阅者 */impo...原创 2018-03-24 17:01:25 · 412 阅读 · 0 评论 -
设计模式之装饰者模式:星巴克咖啡
package decorate;/*headfirst设计模式 第三章节 装饰者模式,装饰者模式分为装饰者与被装饰者,它们必须共享同一个超类,或者接口,因为只有这样,才可以用 * 装饰者替换被装饰者(被装饰者对象被装饰者装饰后变成了装饰者对象,只有它们两个对象可以相互替换才可使用装饰者模式) * 本章节把咖啡饮料比作被装饰者,把调料比作装饰者,用新的调料来装饰饮料,得到新的装饰者对象 ...原创 2018-03-24 18:33:55 · 3613 阅读 · 0 评论 -
设计模式之简单工厂模式:订做Pizza
package factory;/*简单工厂模式,这个模式比较简单,只是把new的语句单独封装在了一个类中,一般放在静态方法里 * 本次场景是披萨店有多种不同的披萨,以下举例了2种,分别为芝士披萨和牛肉披萨,如果披萨种类有很多,则创建的时候就要经常用new操作 * 符创建新对象,单例模式就是把创建新对象的实现方法封装起来,需要具体pizza对象时候直接调用该方法就可得到,只需传入一个参数,但...原创 2018-03-24 22:29:52 · 953 阅读 · 0 评论 -
设计模式之工厂方法模式:不同区域的pizza口味
package factory;/*为了克服简单工厂模式对修改开放的缺点,进一步改进,把工厂方法抽象化,加以延伸,使得在子类中进一步决定如何去实现pizza对象, * 本文中引入了不同地区的披萨商店可以自己定制本地风格的披萨系统,利用工厂方法设计模式对简单工厂中的方法抽象化,提升代码弹性 */interface Pizza //抽象产品类(接口){ void makePizza(...原创 2018-03-24 23:10:08 · 427 阅读 · 0 评论 -
设计模式之单例模式:singleton
/*单例模式意味着一个类只能实现一个对象,可以避免某些功能冲突,也可以节省内存,因为限制了对象的创建 */class Unique{ private Unique(){} //把构造函数设置为私有,确保类的外部不能实例化该类 static Unique unique = null; //为了避免线程不安全,可以把null改为new Unique(),在类刚加载的时候就实例化一个对象,在下...原创 2018-03-24 23:54:21 · 183 阅读 · 0 评论