Java Factory Method
Java设计模式之工厂模式[笔记]
简介
设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便
分类
三大类[主要]:
一、创建型模式(5种)
①工厂方法
②抽象工厂
③单例
④创建者
⑤原型
二、结构型模式(7种)
①适配器模式
②装饰器模式
③代理模式
④外观模式
⑤桥接模式
⑥组合模式
⑦享元模式
三、行为型模式(11种)
①策略模式
②模板方法模式
③观察者模式
④迭代子模式
⑤责任链模式
⑥命令模式
⑦备忘录模式
⑧状态模式
⑨访问者模式
🔟中介者模式
①①解释器模式
其他两大类:
1 | 一、并发型 |
工厂模式
工厂模式,类的创建依赖于工厂类,
a. 一般工厂模式
一般,将工厂模式里的类设置为static静态的,不需要创建,直接调用。[静态工厂模式]
一个工厂类里就一个工厂方法,根据传入字段创建不同类的实例;
b. 多个工厂模式
将a升级,一个工厂类中声明多个工厂方法,不同的方法产生不同类的实例;
c. 静态工厂模式
将b升级,工厂类中的多个工厂方法声明为static类型,使用时不用new对象,直接使用工厂类名.方法名即可;
相比较a,b,c, 通常选择c 静态工厂方法模式;
实例
所有实例及分析基本都在代码及其注释中,便于阅读理解其含义!
一般工厂模式
1 | package javaClassExercise.designPatterns.factoryMethod.generalFactoryMethod; |
1 | package javaClassExercise.designPatterns.factoryMethod.generalFactoryMethod; |
1 | package javaClassExercise.designPatterns.factoryMethod.generalFactoryMethod; |
工厂类
1 | package javaClassExercise.designPatterns.factoryMethod.generalFactoryMethod; |
首先,Java中是对大小写敏感, 只有null, 无NULL、Null这类写法。null也是Java中的关键字; 就像其它类型一样,每种原始类型都有其默认值,int类型默认值0,boolean默认值false; 而null是任何引用类型的默认值, 在Java中任何引用类型变量(Integer、Short、Double等,但是int、short、double这些则不可!)将null作为默认值
例如:
1 | Object object = null; //正确✔ |
关于Java中null的九件事, 点击查看.
> 测试类
1 | package javaClassExercise.designPatterns.factoryMethod.generalFactoryMethod; |
多个工厂模式
对一般工厂模式中的工厂类升级
1 | package javaClassExercise.designPatterns.factoryMethod.manyFactoryMethod; |
测试类:
1 | package javaClassExercise.designPatterns.factoryMethod.manyFactoryMethod; |
总结:
多个工厂模式即:将一般工厂模式的一个工厂类中的一个方法进行升级改造,改写成一个工厂类多个方法,各个方法对应具体功能模块类的实例化new.
静态工厂模式
将多工厂模式升级改造,将工厂类声明为static静态类型,使其不用实例化对象就可以直接调用对应的方法直接创建对应功能模块类的实例对象, 使用方式:
类名.方法名
.
静态工厂类
1 | package javaClassExercise.designPatterns.factoryMethod.staticFactoryMethod; |
测试类
1 | package javaClassExercise.designPatterns.factoryMethod.staticFactoryMethod; |
对于工厂模式,一般选择第三种: 静态工厂模式即可.
版权声明:
本文由Lomo创作和发表,采用署名(BY)-非商业性使用(NC)-相同方式共享(SA)国际许可协议进行许可,
转载请注明作者及出处,本文作者为Lomo,本文标题为Java Factory Method.