Java设计模式(二):工厂方法模式
来源:互联网 发布:三菱fx2n 4da编程实例 编辑:程序博客网 时间:2024/06/16 22:41
我们已经知道了工厂模式的弊端,那么怎么解决呢?在工厂模式中,我们用一个工厂类就创建了多个对象,那么我们是否可以对每一种笔都创建工厂类呢?很明显是可以的。
创建父类Pen,让BellPen、BrushPen、Pencil继承Pen;同理,我们那可以创建父类PenFactory,并定义抽象方法来创建各工厂,让BellPenFactory、BrushPenFactory、PencilFactory继承PenFactory
Pen
pen.java
public abstract class Pen { public abstract void write();}
子类:BellPen
public class BellPen extends Pen { @Override public void write() { System.out.println("圆珠笔"); }}
BrushPen.java
public class BrushPen extends Pen { @Override public void write() { System.out.println("毛笔"); }}
Pencil.java
public class Pencil extends Pen { @Override public void write() { System.out.println("铅笔"); }}
PenFactory.java
父类PenFactory.java
public abstract class PenFactory { public abstract Pen createPen();}
BellPenFactory.java
public class BellPenFactory extends PenFactory { @Override public Pen createPen() { return new BellPen(); }}
BrushPenFactory.java
public class BrushPenFactory extends PenFactory { @Override public Pen createPen() { return new BrushPen(); }}
public class PencilFactory extends PenFactory { @Override public Pen createPen() { return new Pencil(); }}
测试工厂类
public class FactoryTest { public static void main(String[] args) { PenFactory factory ; factory = new BellPenFactory(); BellPen bellPen = (BellPen) factory.createPen(); bellPen.write(); factory = new BrushPenFactory(); BrushPen brushPen = (BrushPen) factory.createPen(); brushPen.write(); factory = new PencilFactory(); Pencil pencil = (Pencil) factory.createPen(); pencil.write(); }}
阅读全文
0 0
- java设计模式(二)---工厂方法模式
- Java设计模式之二(工厂方法模式)
- java设计模式学习笔记(二)--工厂方法模式
- Java设计模式(二) 工厂方法模式
- Java设计模式(二) 工厂方法模式
- Java设计模式(二):工厂方法模式
- Java设计模式(二) 工厂方法模式
- 设计模式(二)---工厂方法模式
- 设计模式(二)工厂方法模式
- 设计模式(二)--工厂方法模式
- 设计模式(二)工厂方法模式+抽象工厂模式
- Java设计模式(二):工厂模式(Factory)之工厂方法
- Java设计模式----工厂模式(二)
- Java设计模式(二)----工厂模式
- Java-设计模式-工厂模式浅谈(二)-工厂方法模式
- JAVA设计模式之二:工厂模式(简单工厂模式+工厂方法模式)
- Java设计模式--工厂模式(简单工厂+工厂方法)
- Java设计模式-工厂模式(简单工厂+工厂方法)
- Oracle数据库基础信息查询
- linux服务器的日志管理
- QT中的定时器使用
- react-native 定时器
- HTML:用递归的方法计算1+2+3+4...+10
- Java设计模式(二):工厂方法模式
- 位运算符
- 运算符
- 关于安装python3.x 及常用安装包,如wheel numpy scripy lxml openSSl Scrapy。
- java 基础-集合
- 0023_Merge k Sorted Lists
- 关于MVC和DAO设计模式
- 【死磕Java并发】-----J.U.C之ConcurrentHashMap红黑树转换分析
- Isolation Forest算法实现详解