一工厂模式
Posted 国境之南时代
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一工厂模式相关的知识,希望对你有一定的参考价值。
1 简单工厂模式的缺陷?
简单工厂模式的工厂加入逻辑判断逻辑,当要增加新的具体工厂时,需要修改代码。这违背了“开放-封边”原则。
2 工厂模式?
工厂模式为每一个具体类都设计一个工厂,这样可以改掉简单工厂的弊端。
3 工厂模式的缺陷?
每增加一个产品就需要增加一个产品的工厂类,增加了额外的开发量
package com.biao.factory.factory; public class FactoryDemo { public static void main(String[] args) { OperationFactory factory = new addOperationFactory(); Operation addOperation = factory.createOperation();//非静态方法由对象直接调用。 addOperation.numberA = 3; addOperation.numberB = 3; System.out.println(addOperation.getResult());; } } /* 静态方法直接类名调用 非静态方法先创建对象,然后通过对象调用。 */ abstract class Operation{ public double numberA; public double numberB; abstract double getResult(); } class OperationAdd extends Operation{ @Override double getResult() { return numberA+numberB; } } class OperationSub extends Operation{ @Override double getResult() { return numberA-numberB; } } class OperationMul extends Operation{ @Override double getResult() { return numberA*numberB; } } class OperationDiv extends Operation{ @Override double getResult() { return numberA/numberB; } } interface OperationFactory{ Operation createOperation(); } class addOperationFactory implements OperationFactory{ @Override public Operation createOperation() { // TODO Auto-generated method stub return new OperationAdd(); } } class subOperationFactory implements OperationFactory{ @Override public Operation createOperation() { // TODO Auto-generated method stub return new OperationSub(); } } class mulOperationFactory implements OperationFactory{ @Override public Operation createOperation() { // TODO Auto-generated method stub return new OperationMul(); } } class divOperationFactory implements OperationFactory{ @Override public Operation createOperation() { // TODO Auto-generated method stub return new OperationDiv(); } }
以上是关于一工厂模式的主要内容,如果未能解决你的问题,请参考以下文章