设计模式详解

本文介绍了23种设计模式,包括创建型、结构型和行为型模式。重点讲解了工厂模式、单例模式和适配器模式,它们在Spring框架和其他场景中的应用。设计模式作为解决软件设计问题的通用方案,能提高代码的可读性和可维护性。
摘要由CSDN通过智能技术生成


总览

总共有 23 种设计模式。这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。


1、创建型模式

1.1、※工厂模式(Factory Pattern)Spring中大量使用

在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

优点: 1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏蔽产品的具体实现,调用者只关心产品的接口。
缺点:每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。这并不是什么好事。

实现:1、一个抽象接口Shape;2、若干实现了抽象接口的实体类Square, Circle;3、一个工厂类ShapeFactory包含创建实体类的方法 getShape();4、一个Demo使用工厂类创建实体对象并执行对应方法
在这里插入图片描述

//1、一个抽象接口`Shape`;
public interface Shape {
   
    void draw();
}

//2、若干实现了抽象接口的实体类`Square`, `Circle`;
class Circle implements Shape{
   
    @Override
    public void draw() {
   
        System.out.println("画一个圆");
    }
}
class Square implements Shape{
   
    @Override
    public void draw() {
   
        System.out.println("画一个方");
    }
}

//3、一个工厂类`ShapeFactory`包含创建实体类的方法 `getShape()`;
class ShapeFactory {
   
    //使用 getShape 方法获取形状类型的对象
    public Shape getShape(String type){
   
        if(type == null){
   
            return null;
        }
        if("circle".equals(type)){
   
            return new Circle();
        } else if ("square".equals(type)) {
   
            return new Square();
        }else{
   
            return null;
        }
    }
}

//4、一个Demo使用工厂类创建实体对象并执行对应方法
public class Demo {
   
    public static void main(String[] args) {
   
        ShapeFactory shapeFactory = new ShapeFactory();
        //获取 Circle 的对象,并调用它的 draw 方法
        Shape circle = shapeFactory.getShape("circle");
        circle.draw();

        //获取 Square 的对象,并调用它的 draw 方法
        Shape square = shapeFactory.getShape("square");
        square.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值