上篇讲述简单工厂模式,其优点在于通过工厂类进行业务解耦。但是工厂方法中包含了逻辑判断,根据客户端的选择条件动态实例化相关的类,如果添加新的手机型号,则需要修改工厂类里的逻辑判断,新增case去判断该型号的分支,这违背了开放-封闭的设计原则。 开放-封闭原则,是说类、模块、函数等等,可以扩展,但是不能... ...
分类:
编程语言 时间:
2016-03-28 15:21:27
阅读次数:
139
写在前面:本人近期在看《大话设计模式》这本书,书里是用C#解说的实例。如今写心得笔记与大家分享。就试着写一个JAVA版的。样例还是书里的样例。只是是Java语言实现的。后面也会给出本人的一些理解建议。谢谢《大话设计模式》的作者。 一、什么是简单工厂模式? 简单工厂模式是工厂模式里最简单的一种。所以叫 ...
分类:
其他好文 时间:
2016-03-28 08:48:17
阅读次数:
310
对于策略模式,我个人理解策略模式就是对各种规则的一种封装的方法,而不仅仅是对算法的封装与调用而已。与工厂模式中简单工厂有点类似,但是比简单工厂更有耦合度,因为策略模式以相同的方法调用所有的规则,减少了规则类和规则类之间的耦合度。 接下来我用策略模式编辑代码来计算斗地主中地主根据坐庄成功失败翻倍情况的 ...
分类:
移动开发 时间:
2016-03-27 21:03:15
阅读次数:
260
设计模式书籍目前身边有的是《Head First 设计模式》、《大话设计模式》,其中也阅读过多人对设计模式的看法,其中谈论过"不可过度设计模式",若只阅读该类书籍不做实际项目很难记得模式的灵活运用。故而,将设计模式的各类情况一一记录,以作学习。 一、简单工厂模式 先贴代码如下: 针对上面代码绘制结构 ...
分类:
其他好文 时间:
2016-03-27 15:29:06
阅读次数:
172
场景:我们的冒险家,现在需要去武器商店买一把兵器,有刀和剑两种武器,冒险者可以告诉武器商人需要哪一种武器,然后武器商人进行锻造,最后把产品给冒险者,用建造者模式如何实现? 1.什么是建造者模式? 之前写过简单工厂、工厂方法以及抽象工厂,这些东西都是创建型设计模式,同样建造者模式也是一种创建型的设计模 ...
分类:
其他好文 时间:
2016-03-24 06:26:36
阅读次数:
184
2016年苹果春季发布会发布了一款迄今最高性能的4英寸iPhone,那么问题来了,苹果公司的代工厂到底生产多少种尺寸的手机呢? 下面就让简单工厂告诉我们答案吧。 由工厂决定生产哪种型号的的手机,苹果公司的工厂就是一个工厂类,是简单工厂模式的核心类。 iPhone5、iPhone5S、iphone6都...
分类:
编程语言 时间:
2016-03-22 16:12:46
阅读次数:
308
简单工厂模式:也可以叫做静态工厂方法,属于类创建型模式,根据不同的参数,返回不同的类实现。 主要包含了三个角色: A.抽象产品角色 一般用接口 或是 抽象类实现 B.具体的产品角色,具体的类的实现 C 工厂角色,实例的产生,根据不同参数,返回不同的类的实现。 结合枚举类的实现代码如下: 1、抽象的产
分类:
编程语言 时间:
2016-03-22 06:15:07
阅读次数:
167
工厂模式分为三种模式,分别为: 下面就分别介绍一下这三种设计模式: 简单工厂模式就是由一个工厂类根据传入的参数量,来决定创建哪一种产品类的实例。(仔细理解这句话,非常重要) 结构图: 上图涉及三个类: 源代码实例: 抽象产品类(Product): Product.java: 具体产品类(Concre
分类:
其他好文 时间:
2016-03-20 23:57:32
阅读次数:
371