java设计模式之工厂模式
来源:互联网 发布:淘宝白菜价优惠券秒杀 编辑:程序博客网 时间:2024/06/14 22:33
工厂方法模式(虚拟构造)
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到子类。
·模式结构的描述:
//1.抽象产品(Product)
public abstract class PenCore{
String color;
public abstract voidwriteWord(String s);
}
//2.具体产品(ConcerteProduct)
public class RedPenCore extends PenCore{
RedPenCore(){
color="红色";
}
public void writeWord(Strings){
System.out.println("写出"+color+"的字:"+s);
}
}
//3.具体产品(ConcerteProduct)
public class BluePenCore extends PenCore{
BluePenCore(){
color="蓝色";
}
public void writeWord(Strings){
System.out.println("写出"+color+"的字:"+s);
}
}
//4.具体产品(ConcerteProduct)
public class BlackPenCore extends PenCore{
BlackPenCore(){
color="黑色";
}
public void writeWord(Strings){
System.out.println("写出"+color+"的字:"+s);
}
}
//5.构造者(Creator)
public abstract class BallPen{
BallPen(){
System.out.println("生产了一只装有"+getPenCore().color+"笔芯的圆珠笔");
}
public abstract PenCoregetPenCore(); //工厂方法
}
//6.具体构造者(ConcreteCreator)
public class RedBallPen extends BallPen{
public PenCore getPenCore(){
return new RedPenCore();
}
}
//7.具体构造者(ConcreteCreator)
public class BlueBallPen extends BallPen{
public PenCore getPenCore(){
return new BluePenCore();
}
}
//8.具体构造者(ConcreteCreator)
public class BlackBallPen extends BallPen{
public PenCore getPenCore(){
return new BlackPenCore();
}
}
//9.模式的使用
public class Application{
public static voidmain(String args[]){
PenCore penCore;
BallPen ballPen=newBlueBallPen();
penCore=ballPen.getPenCore();
penCore.writeWord("你好,很高兴认识你");
ballPen=new RedBallPen();
penCore=ballPen.getPenCore();
penCore.writeWord("How areyou");
ballPen=new BlackBallPen();
penCore=ballPen.getPenCore();
penCore.writeWord("nice to meetyou");
}
}
模式的优点
·可以让用户的代码和某个特定类的子类代码解耦。
·用户不必知道它所使用的对象是怎样被创建的,只需知道该对象又那些方法即可。
使用的情景
·用户需要一个类的子类的实例,但不希望与该子类形成耦合。
·用户需要一个类的子类的实例,但不知道该类有哪些子类可用。
具体的实例
·Java集合框架。
·药品生产等。
源码下载:
http://download.csdn.net/download/gb_young/5355413
- Java设计模式之工厂设计模式
- [java]设计模式之工厂设计模式
- Java设计模式之工厂设计模式
- Java设计模式之工厂设计模式
- JAVA设计模式之工厂设计模式
- java设计模式之工厂设计模式
- Java设计模式之工厂设计模式
- 《java设计模式》之工厂设计模式
- JAVA设计模式之工厂模式之简单工厂模式
- JAVA设计模式之工厂模式之工厂方法模式
- JAVA设计模式之工厂模式之抽象工厂模式
- Java设计模式之工厂
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- java设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- ARM汇编伪指令介绍.
- seed-dec138配置编译时进不了linux-2.6.32:no such file or发表于 : 2012-09-19 17:16
- 按Enter键获取下一个控件的焦点
- 算法---->贪心算法
- 人机猜拳游戏
- java设计模式之工厂模式
- java问题定位
- 深入理解WP8的生命周期
- 使用MD5对密码进行加密的功能的实现
- Java 程序调用存储过程
- POJ题目分类
- more 命令 用于分屏显示
- Foxmail备份邮件内容和地址薄的方法
- 架构设计与架构师