工厂模式介绍

概念:

通过工厂类,来创建对象,不再直接去创建对象使用

优点或者目的:

解耦(开发中你会实在地体会到解耦是件多么重要的事,越复杂越TT)

【注:】什么是耦合性?

  • 耦合性:指的是代码之间的关联关系,两者关联越小就越解耦,一方改动时牵连的范围就越小、越独立,这样的关联关系称为低耦合,反之叫做高耦合。
  • 低耦合:比如插件可以随意更换,就是耦合性低的原因,主程序和插件程序没有任何硬关联,只是通过规定的接口来交互,
  • 高耦合:最直接的例子就是把一个代码直接就写在另一个代码中,如下示例:

public class ActionServletController {

    //如果要修改对象UserServiceImpl, 那还要去ActionServletController中修改对象,不利于维护

    UserService userService = new UserServiceImpl();

}

总结:

  1. 工厂模式是Spring和日常开发用的非常普遍的模式,好处就是解耦,
  2. 耦合性:
    1. 高耦合:说白了就是把新程序硬编码到了其他程序中,对于面向对象开发语言而言,破坏了开闭原则,使代码不易维护
    2. 低耦合:调用新程序时通过工厂类来调用,工厂类中通过IO来动态获取配置文件中的新程序包,再通过反射来动态创建新对象,新对象再返回给调用者。这个中间我们只需要新写一个新类并实现规定接口,并修改配置文件就完成了更新,没有碰调用者,遵守了开闭原则
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,可以将对象的创建过程与使用过程分离开来。 工厂模式的主要思想是通过一个工厂方法来实现对象的创建,而不是直接在代码中通过new来创建对象。这样做的好处是可以减少代码的耦合度,同时增强代码的可扩展性和可维护性。 举个例子,假设有一个形状接口Shape和三个实现类Circle、Rectangle、Square,我们可以定义一个工厂类ShapeFactory来生成Shape的实现类。 ``` interface Shape { void draw(); } class Circle implements Shape { public void draw() { System.out.println("Circle.draw()"); } } class Rectangle implements Shape { public void draw() { System.out.println("Rectangle.draw()"); } } class Square implements Shape { public void draw() { System.out.println("Square.draw()"); } } class ShapeFactory { public Shape getShape(String shapeType) { if (shapeType == null) { return null; } if (shapeType.equalsIgnoreCase("CIRCLE")) { return new Circle(); } else if (shapeType.equalsIgnoreCase("RECTANGLE")) { return new Rectangle(); } else if (shapeType.equalsIgnoreCase("SQUARE")) { return new Square(); } return null; } } ``` 然后我们可以通过以下代码来生成不同的形状对象: ``` ShapeFactory shapeFactory = new ShapeFactory(); Shape circle = shapeFactory.getShape("CIRCLE"); circle.draw(); // output: Circle.draw() Shape rectangle = shapeFactory.getShape("RECTANGLE"); rectangle.draw(); // output: Rectangle.draw() Shape square = shapeFactory.getShape("SQUARE"); square.draw(); // output: Square.draw() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值