博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
努力吧.关于工厂模式(一)
阅读量:6156 次
发布时间:2019-06-21

本文共 1798 字,大约阅读时间需要 5 分钟。

ABSTRACT FACTORY 抽象工厂模式 其实用配电脑来解释会比较容易理解 我有一张空白的电子表格  -------------这是一个抽象工厂 表格里需要填入cpu 主板等 -----------这些是抽象产品 然后这是--------------------------------具体产品
cpu 有intel CPU amdCPU       主板有  华硕主板   技嘉主板 我已经写好了几种配置,这是-------------具体工厂
第一种 cpu intel CPU           主板 华硕主板 第二种 cpu amd CPU           主板 技嘉主板 需要哪种配置,就复制一张配置单,需按配置单取产品
这里每一张配置单可以当成一个工厂,当有多种配置的时候,就有多个工厂了。最后由工厂中的方法得到的都是一台完整的电脑 有一点是否应该这样更解,在抽象工厂模式中,这里工厂只是负责生产,并不是持有?就是说每一次通过同一个工厂实例取得的cpu都是一个新的CPU. 另一个例子 例如   我需要得到 笔和纸, 笔分为 圆珠笔 毛笔, 纸分为 作业本 练习本 。   抽象工厂类      工厂
具体工厂类     做作业  练字   具体笔工厂类   作业工厂   具体纸工厂类   练字工厂
抽象笔 public interface pen {
} 抽象本子 public interface Book {
} 抽象工厂 public interface Factory {
public Pen createPen(String name); public Book createBook(String name); } 具体笔 圆珠笔 public class BallPen implements Pen {
  private String name;   public BallPen (String name)   {
  } } 毛笔 public class BrushPen implements Pen {
  private String name;   public BrushPen(String name)   {
  } } 具体本子 作业本 public class WorkBook implements Book {
  private String name;   public WorkBook(String name)   {
  } } 练习本 public class ExerciseBook implements Book {
  private String name;   public ExerciseBook(String name)   {
  } } 具体作业工厂 public class WorkFactory implements Factory {
public Pen createPen(String name) {
return new BallPen(name); } public Book createBook(String name) {
return new WorkBook(name); } } 具体练字工厂 public class ExerciseFactory implements Factory {
public Pen createPen(String name) {
return new BrushPen(name); } public Book createBook(String name) {
return new ExerciseBook(name); } } 在这里工厂的工作就是生产某种组件,有多少种组件组合,就需要多少个具体工厂,例如我可以用圆珠笔和练习本组成一个工厂。

转载于:https://www.cnblogs.com/meieiem/archive/2012/01/30/2331933.html

你可能感兴趣的文章
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
深入python的set和dict
查看>>
C++ 11 lambda
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
centos 下安装g++
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
jQuery最佳实践
查看>>