(1)设计模式之简单工厂模式(创建型模式)

设计模式之创建型模式实验.docx ①使用简单工厂模式设计一个可以创建不同几何形状( Shape)(例如圆形( Circle).、矩形 Rectangle)和三角形( ( Triangle)等的绘图工具类,每个几何图形均具有绘制方法daw()和擦除方法 erase(),要求在绘制不支持的几何图形时,抛出一个 UnsupportedShapeException异常。绘制类图并编程模拟实现。 ②在某网络管理软件中,需要为不同的网络协议提供不同的连接类,例如针对POP3协议的连接类POP3Connection、针对IMAP协议的连接类 IMAPConnection、针对HTTP协议的连接类 HTTPConnection等。 立即下载

声明:以下都是博主浅薄的经验之谈,欢迎大家学习交流

官方性的话语这边就暂且不说了,说多了也未必能清楚的了解,先上类图、对于不理解类图中各条线的具体表示什么含义,博主这边也顺便写上相应的意思,助于大家理解
这里写图片描述

  • Driver.java
public interface Driver {
    public void getConnection();
}
  • MySQLDriver.java
public class MySQLDriver implements Driver{

    @Override
    public void getConnection() {
        System.out.println("获取MySQL链接....");
    }

}
  • OracleDriver.java
public class OracleDriver implements Driver {

    @Override
    public void getConnection() {
        System.out.println("获取Oracle链接.....");
    }

}
  • SQLFactory.java
public class SQLFactory {
    /**
     * 造对象
     * 
     * @param type
     * @return
     */
    public Driver getDriver(String type) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
        /*
         * 第一种方法(缺点:当Driver接口的实现类多了的话,就需要动这部分的代码。不符合设计模式的封闭原则【封闭,封闭,
         * 就是尽量少动之前写的代码了】)

        if (type.equalsIgnoreCase("MySQL")) {
            return new MySQLDriver();
        } else if (type.equalsIgnoreCase("Oracle")) {
            return new OracleDriver();
        } else {
            System.out.println("没有该类型...");
            return null;
        }
        */
        /*第二种方法*/
        return (Driver)Class.forName(type).newInstance();
    }
}
  • Main方法
package com.dyx.design.simplefactory;

/**
 * 描述: 简单工厂方法
 */
public class Main {
    public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
        SQLFactory sqlFactory = new SQLFactory();
        Driver mysqlDriver = sqlFactory.getDriver("com.dyx.design.simplefactory.MySQLDriver");
//      Driver oracleDriver = sqlFactory.getDriver("mysql");
        mysqlDriver.getConnection();
//      oracleDriver.getConnection();
    }
}
STM32实战:增量式PID控制气体流量(附完整代码与调参技巧) 本文详细解析了如何在STM32平台上实现气体流量控制的增量式PID算法。内容涵盖从系统硬件架构选型、增量式PID算法原理与代码实现,到ADC采样滤波、PWM驱动配置等关键外设驱动,并提供了完整的参数整定技巧与工程调优实战指南,帮助开发者构建稳定可靠的气体流量控制系统。 阅读详情

相关推荐

滚动轴承振动信号特征解析与故障诊断模型构建

本文深入解析了滚动轴承振动信号的三大来源与特征,并详细阐述了从时域、频域到时频域的特征提取方法。通过构建基于机器学习(如随机森林、SVM)或深度学习的故障诊断模型,结合实战代码示例,为设备维护工程师提供了一套从信号分析到智能诊断的完整解决方案,旨在实现精准的故障识别与预测性维护。

qsc901234567的博客 368

简单工厂创建不同几何图形(Java代码实例)

使用简单工厂模式设计一个可以创建不同几何图形(Shape),如Circle,Rectangle,Triangle等绘图工具类,每个几何图形均具有绘制Draw()和擦除Erase()两个方法;要求在绘制不支持的几何图形时,抛出一个UnsuppShapeException异常,绘制类图并使用Java语言实现。 /** * Description: 抽象产品角色 */ public abstract class Shape { public abstract void draw();

米莱虾 1万+

论文阅读--射频电源在半导体领域的应用

射频电源(RF Power Supply)是能够输出300kHz~300GHz正弦波电压的高频交流电源,在半导体制造领域,射频电源的典型工作频率范围为400kHz∼60 MHz,主要由射频发生器(功率源)、匹配器及配套控制电路组件构成,其关键组件包括变压器与电抗器、晶闸管、绝缘栅双极型晶体管(IGBT)、钣金件、铜材及各种电子元器件。射频电源是刻蚀和薄膜沉积工艺的核心,主要用于产生等离子体,以增强气体反应活性,其性能直接影响反应腔体内等离子体的浓度、均匀性和稳定性。

伊丽莎白的学习之路 2337

简单工厂模式实例

简单工厂模式实例问题描述结构图编程实现接口实现类自定义UnsupportedShapeException异常类工厂类客户端 问题描述 使用简单工厂模式设计一个可以创建不同几何形状(Shape),如圆形(Circle)、矩形 (Rectangle)和三角形(Triangle)等的绘图工具类,每个几何图形均具有绘制Draw()和擦除 Erase()两个方法,要求在绘制不支持的几何图形时,抛出一个UnsupportedShapeException 异常。绘制类图并编程模拟实现。 结构图 编程实现 接口 publ

shiaiao的博客 3605

STM32进入HardFault_Handler时,如何找到问题所在?

当STM32进入HardFault_Handler时,定位问题发生的点

m0_60831979的博客 2150

MTK PE+2.0介绍

  PE+2.0介绍:   1.      PE+2.0的状态机: 2.      升压波形协议及编码规则: PE+2.0软件设计:   在充电器类型为标充且底层电量SOC在1%—95%之间时,开始PE+2.0升压充电器的检测:首先将VBUSreset至5V,之后发送8.5的current pattern再获取此时VBUS电压和8.5V比较,若其与8.5的差值绝对值在0.5之...

raydom07的博客 1万+

设计模式-简单工厂模式

设计模式-简单工厂模式

xiaohua1230的博客 1607

西工大总分396上岸学长的经验分享|西北工业大学通信考研信号与系统

以上就是我的一些经验,当然每个人的情况与学习习惯都是不一样,以上仅供大家参考,具体的学习进度安排等都要依据个人的实际情况而定。基础阶段:高数比较推荐武忠祥老师,他讲的内容难度比较合适,知识的梳理也比较完备,基础阶段主要集中做书上的例题,在基础阶段,我们很容易出现知识点遗忘现象,所以要及时回顾讲义知识点,这个时候做660的时候建议延迟两三章去练习(比如学完第三章,我在找时间把第一章的660习题做完,对答案)这里不建议硬生生的把讲义过一遍,可以配套做880基础篇,880这本资料还是极力推荐的。

xiaomage_mengma的博客 723

设计模式之工厂模式详解(附应用举例实现)

设计模式之工厂模式详解(附应用举例实现)

pursuit的博客 4766

【IC设计实战】去耦电容decap在电源完整性中的关键作用与选型策略

本文深入探讨了去耦电容(decap)在IC设计电源完整性中的核心作用。文章分析了decap如何通过提供本地电荷缓冲来抑制电源噪声与电压波动,并详细阐述了其选型与布局策略,包括MIM、MOM、MOS电容的特性对比,以及如何权衡峰值抑制与建立速度的矛盾,为设计稳定可靠的芯片电源系统提供实践指导。

weixin_29233857的博客 248

2026年职业院校技能大赛中职移动应用与开发模块二10套题库开发培训视频(全套)

2026年职业院校技能大赛中职移动应用与开发模块二10套题库开发培训视频(全套)

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 353

创建型模式之简单工厂模式

文章目录1.模式的定义2.简单工厂模式的模式结构3.模式特点4.模式实例5.作业例子及编程实现6.优缺点7.使用简单工厂模式的场合 1.模式的定义 简单工厂模式(Simple Factory Pattern): 又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式 在简单工厂模式中,可以根据参数的不同返回不同类的实例 简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类 2.简单工厂模式的模式结构 3.模式特点 将对象的创建和对象本

CodeReaper的博客 2988

EML 全面实践指南:把 SAP RAP 业务对象玩出工程化的稳定与优雅

本文面向掌握ABAP基础、正在实施RAP的开发者,深入讲解EML(Entity Manipulation Language)的核心用法。文章围绕READ ENTITIES、MODIFY ENTITIES、COMMIT ENTITIES三大语句,详细解析其语义、类型体系、事务机制及工程实践。重点内容包括:字段裁剪、派生类型、草稿控制、批量更新、事务缓冲与保存序列等关键技术点,并配合真实案例代码。旨在帮助开发者在SAP ABAP On-Premise和BTP环境中构建可维护、可演进的业务对象访问层,同时避免常见

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 329

图说设计模式之简单工厂模式:静态工厂方法的核心结构与 C++ 实战解析

本文基于开源仓库《图说设计模式》(design_patterns)中的 [simple_factory.rst](https://link.gitcode.com/i/d4e6efe016fbe8f6692af1dd024ad732) 文档,系统讲解创建型设计模式中的**简单工厂模式(Simple Factory Pattern,又称静态工厂方法模式)**。文中以"外观不同的按钮"为引例,完整梳理

gitblog_00959的博客 217

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【c++设计模式03】创建型1:简单工厂模式(Simple Factory Pattern)

并由实现该接口或继承该抽象类的具体工厂类负责实例化对象。在工厂模式中,客户端通过调用工厂类的方法来获取所需的对象,而无需直接实例化对象。工厂类根据不同的需求条件,使用不同的逻辑或算法创建相应的对象,隐藏了对象创建的具体细节。工厂模式可以有效地降低系统的耦合度,提高代码的可维护性和可扩展性。它符合面向对象设计原则中的开放封闭原则,即对扩展开放,对修改封闭。当需要新增一种产品时,只需添加相应的具体产品类和对应的工厂类,而无需修改已有的代码。常见的工厂模式包括。

junxuezheng的博客 1115

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

深入浅出设计模式 - 创建型设计模式 - 1.简单工厂模式

引言: 最近在学习设计模式,于是仔细研究了一下,决定整理成文章分享出来,对于没有设计模式的小白,再合适不过了,看招吧! 盗个图片~ ~ ~~ 什么是设计模式: 我理解的设计模式,就是一种编程的风格和规范,这个概念最早是出现在建筑学中,认为设计风格是一种美学,那我们就把设计模式,当成是编程的美学吧! 设计模式分类: 创建型设计模式 结构型设计模式 行为型设计模式 技巧型设计模式 结构型设计...

原鑫的个人博客 243

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

设计模式1——创建型模式之简单工厂模式

定义:简单工厂模式(Simple Factory Pattern),有一个提供接口的抽象类,然后实现不同功能的子类去实现抽象类,最后一个简单工厂类来完成对不同功能子类的创建。 类型:创建型模式。 类图:   参与角色: 抽象产品,提供接口供Client调用。具体产品,根据具体产品的要求去实现接口。工厂类,根据传入参数的不同,创建不同的产品。 概述:    

飞鹤的程序员人生 1025

GO设计模式——1、简单工厂模式(创建型)

简单工厂模式又称为静态工厂方法(Static Factory Method)模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。核心角色1、抽象产品(Abstract Product):是简单工厂创建的所有对象的抽象父类/接口,负责描述所有实例的行为。2、具体产品(Concrete Product):是简单工厂模式的创建目标。3、简单工厂:是简单工厂模式的核心,负责实现创建所有实例的内部逻辑。

Gloming__zxy的博客 371

设计模式-创建型-1-简单工厂模式

【代码】设计模式-创建型-1-简单工厂模式。

fengxuewei123的博客 153

设计模式之____创建型设计模式 5+1 简单工厂模式

创建型设计模式: 创建型设计模式关注的是将对象的创建和使用相分离,让用户感受不到创建对象的细节问题,从而实现系统的解耦。 通常创建型设计模式包含5中(注意简单工厂模式 不包含于23种设计模式)。所谓5+1即: 简单工厂模式;(Simple Factory Pattern) 工厂方法模式; 抽象工厂模式; 建造者模式; 原型模式; 单例模式; 简单工厂模式: ...

208

(一)创建型设计模式:1、简单工厂模式、工厂模式、抽象工厂模式

主要介绍简单工厂模式、工厂模式、抽象工厂模式的含义,以及对应的示例

bigger_belief的博客 440

设计模式之创建型模式—— 1.1 简单工厂模式

<?php /** *1.1简单工厂模式 * *解决的问题: * 如何解决多个类实例化对象的问题。 * 注意:因为是简单工厂模式,所以要实例 * 化的类不能太多,否则请使用1.2节 * 的工厂方法模式。 * *解决方案: * 建立一个工厂(即一个工厂类),通过参数的 * 传递动态决定...

weixin_34194379的博客 73

设计模式 -(1)简单工厂模式(创建型)

一、引言  这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式——简单工厂模式。二、简单工厂模式的介绍  说到简单工厂,自然的第一个疑问当然就是什么是简单工厂模式了? 在现实生活中工厂是负责生产产品的,同样在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个类,我们平常编程中,当使...

weixin_30834019的博客 63

(1)设计模式之--创建型模式------------简单工厂模式SimpleFactory

本次讲解的是简单工厂模式 简单工厂模式又叫静态工厂方法模式,是所有工厂模式中最简单的一个。 创建型模式大致有以下几种: 1、简单工厂模式Simple Factory 2、工厂模式Factory 3、抽象工厂模式Abstract Factory 4、单例模式 Singleton 5、原型模式Protorype 6、创建者模式Builder   1.首先分析简单工厂模式的优缺点:

人生起落,生活苦甜,坚持追求! 1083

Java设计模式之简单工厂模式

一、引入         先前看了各种版本的设计模式书,感觉没什么印象,遂决定按自己想法写一写 今天开始第一个设计模式——简单工厂模式     看过火影的童鞋都知道当年大蛇丸跟三代火影大战的时候,用的禁术秽土转生,现在药师兜好像用这个弄得非常牛叉似的后话就不多说,就说大蛇丸学的这个术     先引入下秽土转生:系二代目火影开发的S级禁术,目前只有四个人会使用。分别是大蛇丸,药师兜,宇智波斑

hanhxBlog 1639
上一篇: 字符编码 ASCII,Unicode和UTF-8的关系
下一篇: (2)设计模式之工厂方法模式(创建型模式)
yi博说
博客等级 码龄11年 20粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值