输入两个数和运算符,计算出结果。 可以根据工厂模式画出类图,四种(或者更多)运算符,统一运算符接口,并含有run()方法,用于执行运算。 定义一个运算工厂,含有工厂方法,该工厂方法根据用户输入的运算符new出相应的对象。 Main测试 运算接口 加减乘除 工厂 工厂方法 执行结果 ...
分类:
其他好文 时间:
2016-04-11 14:25:05
阅读次数:
260
我们在编程的时候,每当"new"一个对象之后,这个对象就依赖于这个类了。如果在后期的维护过程中由于某些原因需要修改一下这个类,则唯一的做法就是打开源代码,进行修改,修改所有与这个对象有关的操作。这对我们是非常不利的 所以我们专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类或接口 ...
序 说好的每天进步一点点的,结果工作太忙,一直在加班,都没有学习新东西。我还要进BAT呢。 坚持每天学习新东西。 写代码时,意识到在代码结构上还是有点欠缺。赶紧补上。 纪录对设计模式的认识。小菜变大鸟。进攻BAT。 应用场景: 编写一个计算器控制台程序,要求输入两个数和运算符号,得到结果。 这本书使 ...
分类:
其他好文 时间:
2016-04-05 19:45:12
阅读次数:
179
很久之前在学习c++的时候就听到老师说写代码要考虑重构,架构,在此期间学习到了一种简单工厂模式。
何为简单工厂模式呢?简单工厂模式又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
举个栗子,我们可能会遇到这类问题,假如需要一个软件,它可以计算各种图形的面积,使用简单工厂模式来构架的话...
分类:
其他好文 时间:
2016-04-03 13:17:58
阅读次数:
186
简单工厂模式的本质是利用多态性,将实例化的过程交给工厂去完成,减少耦合度 实现加减乘除功能的计算器: 然后构造工厂类,根据客户端传入的参数,实例化不同的操作类,返回给调用者 客户端调用时,不需要认识所有的操作类,而只需要认识操作类的基类和工厂类即可: ...
分类:
其他好文 时间:
2016-04-01 17:58:14
阅读次数:
170
策略模式封装了变化。 标准策略模式: 策略与简单工厂结合: 简单工厂模式对类似“满300减200、满400减100”的变化进行有效封装,除非另外制定一套规则比如:“满减-400,100、满减-500,100”,在swich语句中只取‘-’之前的作case条件,其后跟参数,多个参数以 ‘,’分割。 策 ...
分类:
其他好文 时间:
2016-03-30 01:29:42
阅读次数:
129
面向对象编程永远在考虑:解藕和复用。 设计模式是前辈总结的结果,这些模式都是基于问题本身的抽象,活学活用才是王道。 //////////////////////////////////////////////////////////////////////////////////////////// ...
分类:
其他好文 时间:
2016-03-29 23:55:59
阅读次数:
185
1.简单工厂模式1 简单介绍
简单工厂模式就是将对象产生的细节进行隐藏,客户端进行调用。
它又称为静态工厂方法模式,属于类的创建型模式。2.实现原理
为了将类的职能进行细分,定义一个具体的工厂类来负责创建类的对象,被创建的实例通常都具有共同的父类。
主要由三部分组成:工厂类 抽象类和实现抽象类的具体类;
该模式中包含的角色及其职责
工厂(Factory)角色...
分类:
其他好文 时间:
2016-03-29 10:35:25
阅读次数:
243
上篇讲述简单工厂模式,其优点在于通过工厂类进行业务解耦。但是工厂方法中包含了逻辑判断,根据客户端的选择条件动态实例化相关的类,如果添加新的手机型号,则需要修改工厂类里的逻辑判断,新增case去判断该型号的分支,这违背了开放-封闭的设计原则。 开放-封闭原则,是说类、模块、函数等等,可以扩展,但是不能... ...
分类:
编程语言 时间:
2016-03-28 15:21:27
阅读次数:
139
写在前面:本人近期在看《大话设计模式》这本书,书里是用C#解说的实例。如今写心得笔记与大家分享。就试着写一个JAVA版的。样例还是书里的样例。只是是Java语言实现的。后面也会给出本人的一些理解建议。谢谢《大话设计模式》的作者。 一、什么是简单工厂模式? 简单工厂模式是工厂模式里最简单的一种。所以叫 ...
分类:
其他好文 时间:
2016-03-28 08:48:17
阅读次数:
310