欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 【设计模式】常用的设计模式详解

【设计模式】常用的设计模式详解

2025/3/22 17:02:49 来源:https://blog.csdn.net/weixin_44860141/article/details/146399827  浏览:    关键词:【设计模式】常用的设计模式详解

常用设计模式

  • 常用设计模式介绍
    • 设计模式的分类
  • 工厂模式
    • 工厂模式
    • 1.场景介绍
    • 案例代码
  • 参考链接

常用设计模式介绍

设计模式的分类

创建型模式(Creational):关注对象的实例化过程,包括了如何实例化对象、隐藏对象的创建细节等。常见的创建型模式有单例模式、工厂模式、抽象工厂模式等。
结构型模式(Structural):关注对象之间的组合方式,以达到构建更大结构的目标。这些模式帮助你定义对象之间的关系,从而实现更大的结构。常见的结构型模式有适配器模式、装饰器模式、代理模式等。
行为型模式(Behavioral):关注对象之间的通信方式,以及如何合作共同完成任务。这些模式涉及到对象之间的交互、责任分配等。常见的行为型模式有观察者模式、策略模式、命令模式等。

工厂模式

工厂模式

1.场景介绍

设计一个运算方法,可以运算两个数的加减乘除等运算
思维:页面与业务分离开,加减乘除独立,方便后续有其他算法加入时不受影响

案例代码

1.运算类

package org.example.model.factory;public class Compute {private int numA;private int numB;public int getNumA() {return numA;}public void setNumA(int numA) {this.numA = numA;}public int getNumB() {return numB;}public void setNumB(int numB) {this.numB = numB;}public int getResult(int numA,int numB){return 0;}
}

2.加法类

package org.example.model.factory;public class OperaAdd extends Compute{@Overridepublic int getResult(int numA,int numB) {return numA + numB;}
}

3.减法类

package org.example.model.factory;public class OperaReduce extends Compute{@Overridepublic int getResult(int numA,int numB) {return numA - numB;}
}

4.乘法类

package org.example.model.factory;public class OperaMul extends Compute{@Overridepublic int getResult(int numA,int numB) {return numA * numB;}
}

5.除法类

package org.example.model.factory;public class OperaDiv extends Compute{@Overridepublic int getResult(int numA,int numB) {if (numB != 0){return numA / numB;}else {throw new RuntimeException("除数不能为0");}}
}

6.工厂类

package org.example.model.factory;public class OperaFactory {public static Compute createCompute(String opera){Compute c = null;switch (opera){case "+":c = new OperaAdd();break;case "-":c = new OperaReduce();break;case "*":c = new OperaMul();break;case "/":c = new OperaDiv();break;}return c;}
}

7.测试

package org.example.model.factory;public class TestDemo {public static void main(String[] args) {Compute c = OperaFactory.createCompute("+");int result = c.getResult(3,8);System.out.println(result);}
}

8.输出结果
在这里插入图片描述

参考链接

参考书籍:《大话设计模式》
参考博客:
Java开发者必备:23种设计模式全面解析
23种设计模式(Java版,超详细!)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词