工厂方法模式(Java)

下面是关于我所写的所有设计模式代码(还是建议自己手打或者想一个别的例子练习一次)
(https://github.com/lihang212010/DesignPatterns-/tree/master/designpatterns/src)

老规矩先一张正规UML

接下来是我举的例子

mV0L3dlaXhpbl80MzQ4NjgwNA==,size_16,color_FFFFFF,t_70)还是生产红色黑色笔这个例子,代码在下面,很好理解,建议先看代码,大佬除外。

在这里我们去掉了简单工厂模式,给每一个生产子类做一个工厂,然后工厂指向生产类,这样我们需要修改为黑色签字笔只需要修改主方法而不用修改封闭的代码,不违反封闭-开放原则(通常意义我们修改主方法中代码不属于违背封闭-开放原则)
工厂模式的运用很多,正规的产品(会更新)都会使用这个设计模式,比如QQ,王者荣耀,DNF等等。

生产类

public class Factory {public void  GetResult() {System.out.println("工厂生产签字笔");}
}

红色签字笔类

public class RedCreate extends Factory{@Overridepublic void GetResult() {System.out.println("工厂生产红色签字笔");}
}

黑色签字笔类

@Overridepublic void GetResult() {System.out.println("工厂生产黑色签字笔");}
}

虚拟工厂类

public interface AbstractFactory {
Factory create();
}

黑色签字笔工厂

public class BlackFactory implements AbstractFactory{@Overridepublic Factory create() {// TODO Auto-generated method stubreturn new BlackCreate();}}

红色签字笔工厂

public class RedFactory implements AbstractFactory {@Overridepublic Factory create() {return new RedCreate();}}

主方法

public class Main {public static void main(String[] args) {AbstractFactory factory=new RedFactory();
Factory c=factory.create();
c.GetResult();}}

结果是输出 工厂生产红色签字笔

工厂方法模式(Java)相关推荐

  1. 工厂方法模式java实例,设计模式之工厂方法模式实例(Java)

    海尔工厂(Haier)生产海尔空调(HaierAirCondition),美的工厂(Midea)生产美的空调(MideaAirCondition) .使用工厂方法模式描述该场景,绘制类图并编程实现. ...

  2. Java 设计模式之静态工厂方法模式

    设计模式系列 创建型设计模式 Java 设计模式之单例模式 Java 设计模式之静态工厂方法模式 Java 设计模式之工厂方法模式 Java 设计模式之抽象工厂模式 Java 设计模式之Builder ...

  3. 设计模式(2):工厂方法模式(Factory Method Pattern)

    1.接着简单工厂模式谈起 在简单工厂模式(静态工厂模式)中,有一个负责创建对象的工厂类,在这个工厂类里负责所有对象的创建,为了根据用户的不同需求创建不同的对象,工厂类需要进行检查与判断: public ...

  4. 《转》java设计模式--工厂方法模式(Factory Method)

    本文转自:http://www.cnblogs.com/archimedes/p/java-factory-method-pattern.html 工厂方法模式(别名:虚拟构造) 定义一个用于创建对象 ...

  5. Java设计模式(一) -- 工厂方法模式

    java的设计模式大体上分为三大类: •创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式. •结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组 ...

  6. 《JAVA与模式》之工厂方法模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述工厂方法模式的: 工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymor ...

  7. Java设计模式-工厂方法模式和抽象工厂模式

    工厂方法模式定义: 即定义一个创建对象的接口(即抽象工厂类),让其子类(具体工厂类)决定实例化哪一个类(具体产品类)."一对一"的关系 1,一抽象工厂类派生出多个具体工厂类: 2, ...

  8. 手撕设计模式之「工厂方法模式」(Java描述)

    前言 工厂方法模式是对简单工厂模式的改进,它通过对工厂类进行抽象形成一个抽象工厂接口,再让具体的工厂负责对应产品的创建,使得在增加产品的场景中也满足"开闭原则".希望通过本文的学习 ...

  9. Java设计模式-工厂模式(2)工厂方法模式

    在Java设计模式-工厂模式(1)简单工厂模式 中我们介绍了简单工厂模式,提到了简单工厂模式违背了开闭原则,而"工厂方法模式"是对简单工厂模式的进一步抽象化,其好处是可以使系统在不 ...

  10. Java的二十三种设计模式(单例模式、工厂方法模式、抽象工厂模式)

    从这一块开始,我们详细介绍Java中23种设计模式的概念,应用场景等情况,并结合他们的特点及设计模式的原则进行分析. 创建型模式(5种):用于描述"怎样创建对象",它的主要特点是& ...

最新文章

  1. 第十二周项目三-数组类运算的实现
  2. 关于医网联影像工作站3.0(ProDicom Workstation 3.0)的版权及注册问题说明
  3. 2008年浙江大学计算机及软件工程研究生机试真题
  4. Angularjs基础(三)
  5. postman安装和简单使用
  6. hihocoder1089 Floyd算法
  7. oracle监听为blocked,关于“Instance +ASM1, status BLOCKED, ”
  8. putty连接TPYBord V202开发板教程
  9. 最小树——迪杰斯特拉算法
  10. scratch3 打幽灵游戏
  11. selenium1、selenium2 示例代码(java版)
  12. Gartner2021年网络技术成熟度曲线
  13. ubuntu 16:使用系统自带的中文输入法
  14. 我热爱计算机作文450字,热爱音乐的我作文450字
  15. VUE中导出Excel功能的实现
  16. then 微信小程序_微信小程序异步处理
  17. 定制Github上的小图标/小徽章
  18. idea在plugins中搜不到插件MyBatisX
  19. poj 1689 zoj 1422 3002 Rubbery (Geometry + BFS)
  20. 学校计算机网络方案书,学校网络部活动策划书

热门文章

  1. 我的世界java版mac切视角_我的世界中怎么切换视角 大神手把手教学
  2. 小狗扫地机器人与石头_养小狗哪个型号扫地机器人好用?
  3. java SQLexists用法_sql中的 exists 用法
  4. 3款支持ios系统的epub阅读器推荐
  5. 连接器使用四大注意要点
  6. Ubuntu单系统安装
  7. Java多媒体播放器(一)
  8. CentOS6安装dovecot并提供sasl功能
  9. 老年人不是时代弃子,而是能暴富的金矿!
  10. 【组合数学 dp[i][j] = a*dp[i, j-1] + b*dp[i-1,j]+c 求 dp[n][n]】Gym - 101480F Frightful Formula