工厂方法模式和抽象工厂模式
简单工厂模式
通常方法都是静态的,所以也被称作静态工厂
虽然从理论上,简单工厂什么都能创造,但是对于简单工厂可创建对象的范围来说,通常不要太大,建议将其控制在一个独立组件级别或者一个模块级别,也就是一个组件或模块对应一个简单工厂
类名建议为“模块名称+Factory”,如“UserFacory”;方法名通常为“get+接口名称”或者“create+接口名称”,如...
分类:
其他好文 时间:
2014-12-04 08:50:22
阅读次数:
227
2、设计模式设计这个项目的一种方式。简单工厂模式Console.WriteLine("请输入您想要的笔记本品牌");string brand=Console.ReadLine();NoteBook nb=GetNoteBook(brand);nb.SayHello();//调哪个子类的方法取绝于父类...
分类:
其他好文 时间:
2014-12-01 20:35:59
阅读次数:
225
如果想成为一名更优秀的软件设计师,了解优秀软件设计的演变过程比学习优秀设计本身更有价值。1.1 面向对象的好处 通过封装、继承多态把程序的耦合度降低,使用设计模式使得程序更加灵活,容易修改,易于复用。1.2 类图1.3 代码几个运算类; 1 using System; 2 using Syst...
分类:
其他好文 时间:
2014-11-30 22:51:44
阅读次数:
241
创建型模式 工厂方法模式属于类的创建行模式又被称为多态工厂模式。工厂方法模式的意义在于定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中,核心工厂类将不在负责产品的创建,这昂核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口。 简单工厂模式又叫静态工厂模式,由一个工...
分类:
其他好文 时间:
2014-11-27 10:37:23
阅读次数:
198
之前在一家公司笔试的时候有过这样一道题:请用一种面向对象语言实现计算器控制台程序,输入两个数字和运算符号,输出结果。 一开始脑子里想到的是这样滴: 1 package com.edu.shnu.patternstudy; 2 3 import java.util.Scanner; 4 5 ...
分类:
其他好文 时间:
2014-11-27 00:05:49
阅读次数:
321
为了解决简单工厂模式的缺点,我们通过接口IFactory抽象出工厂类,然后每次增加一个操作类,我就增加工厂类,从而达到:对扩展开放,对修改关闭。还是计算器的问题:UML如下:factory 基类:public interface IOperatorFactory { AbstractOpera...
分类:
其他好文 时间:
2014-11-26 16:19:57
阅读次数:
194
简要分析简单工厂模式,工厂方法模式,抽象工厂模式以及spring的部分区别
分类:
编程语言 时间:
2014-11-26 13:38:03
阅读次数:
197
在前一章节我们讲到了简单工厂模式,它的已入确实为我们的代码增添了灵活性、可继续。那么为什么在还有工厂方法模式呢?
什么是工厂方法模式呢?定义一个创建对象的接口,让子类决定实例化哪个类。工厂方法使实例化延迟到子类中。简单点说就是为每一个具体类创建一个工厂类(此类是继承抽象工厂类)。那么我们在客户端时候,直接用对应的工厂类创建实例。
用简单工厂模式,我们如果需要添加行的计...
分类:
其他好文 时间:
2014-11-25 10:53:05
阅读次数:
210
学习了一段时间的设计模式,对其中的模式有一些自己的理解,根据每个模式的结构图做一些总结,以作为反思吧。
一、简单工厂模式
模式解析:简单工厂模式中运算类是一个抽象类,加、减、乘、除为四个具体的运算类,它们继承了抽象了的属性和方法。简单工厂类依赖于运算类,只要输入运算符号,工厂就实例化出合适的对象,通过多态,返回父类的方式实现计算器的结果。
思想概况:代码规范,谨记面向对象三大原则:可...
分类:
其他好文 时间:
2014-11-24 10:11:21
阅读次数:
135
packagedao;
/**
*定义一个人类的统称
*@authorMr.Zhang
*
*/
publicinterfaceHuman{
/**
*首先定义什么事人类
*/
//会笑的
publicvoidlaugh();
//会哭的
publicvoidcry();
//会说话的
publicvoidtalk();
}
packagedaoimpl;
importdao.Human;
/**
*黑人
*@..
分类:
其他好文 时间:
2014-11-22 02:06:24
阅读次数:
172