java-design第四节原型模式
创造者模式:工厂方法、抽象工厂、生成器、原型、单例这类模式提供创建对象的机制,能够提升已有代码的灵活性和可复用性第四节、原型模式一、原型模式介绍原型模式主要解决的问题就是创建重复对象,而这部分对象内容本身比较复杂,生成过程可能从库或者RPC接口中获取数据的耗时较长,因此采用克隆的方式节省时间。
二、案例场景模拟公平性的考试需求
在保证大家的公平性一样的题目下,开始出现试题混排,正确的答案选项也混排
需要时间上机考试抽题的业务,因此在这里创建一个题库题目的场景类信息。创建:选择题,问答题。
1.场景模拟工程在这里只模拟了两种题目,选择题和问答题。
2.场景简述2.1 选择题package org.levtio.demo.design;import java.util.Map;/** * @Author: LuoMingDong * @Date: 2023/9/20 9:40 * @Describe: 单选题 */public class ChoiceQuestion { private String name; private Map<String, Str ...
java-design第三节建造者模式
创造者模式:工厂方法、抽象工厂、生成器、原型、单例这类模式提供创建对象的机制,能够提升已有代码的灵活性和可复用性第三节、建造者模式一、建造者模式介绍建造者模式所完成的内容就是通过将多个简单对象通过一步步组装构建出一个复杂对象的过程例如初始化游戏元素的时候,会创建模型,但是他们的摆放以及大小都有不同。这里就可以用到建造者模式来初始化游戏元素。
而这样的根据相同的物料,不同的组装所产生出的具体的内容,就是建造者模式的最终意图:将一个复杂的构建与其表示相分离,是的同样的构建过程可以创建不同的表示。
二、案例场景模拟这里我们模拟装修公司对于设计出一些套餐装修服务的场景模拟装修公司按照不同的价格设定品牌选择组合,以达到使用建造者模式的过程
1. 场景模拟工程在模拟工程中提供了装修所需要的物料;ceiling(吊顶)、coat(涂料)、floor(地板)、tile(地板)。
2. 场景简述2.1 物料接口package org.levtio.demo.design;import java.math.BigDecimal;/** * @Author: LuoMingDong * @Date: 202 ...
java-design第二节-抽象工厂模式
创造者模式:工厂方法、抽象工厂、生成器、原型、单例这类模式提供创建对象的机制,能够提升已有代码的灵活性和可复用性第二节、抽象工厂模式一、抽象工厂模式介绍抽象工厂图解
抽象工厂模式与工厂方法模式虽然主要意图都是为了解决接口选择问题。但是在实现上,抽象工厂是一个中心工厂,创建其他工厂的模式。
二、案例场景模拟模拟redis升级
初期业务的蛮荒发展,会牵动研发对系统的建设
初期预估OPS较低、系统压力较小、并发访问不大、近期改动不大。于是前期可能只需要单机即可满足。但是随着业务发展,系统的负载能力也要随之跟上,这时候就需要更换为更为健壮的redis集群服务,虽然需要修改但是不能影响目前系统的运行,还要平滑过渡过去。
可以预见的问题会有:
1. 很多服务用到了Redis需要一起升级到集群。
2. 需要兼容集群A和集群B,便于后续的灾备。
3. 两套集群提供的接口和方法各有差异,需要做适配。
4. 不能影响到目前正常运行的系统。
1.场景模拟工程工程项目结构如图所示:
2.场景描述2.1 模拟单机服务RedisUtilspackage org.levtio.demo.design;impor ...
java-design第一节工厂方法
创造者模式:工厂方法、抽象工厂、生成器、原型、单例这类模式提供创建对象的机制,能够提升已有代码的灵活性和可复用性第一节:工厂方法模式一、工厂方法模式介绍工厂模式又称为工厂方法模式,是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。
它的主要意图是定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
简单来说就是提供了代码结构的扩展性,屏蔽每一个功能类中的具体实现逻辑。
二、实例:模拟发奖多种商品在营销场景中经常会有某个⽤户做了⼀些操作;打卡、分享、留⾔、邀请注册等等,进⾏返利积分,最后通过积分在兑换商品,从⽽促活和拉新。那么在这⾥我们模拟积分兑换中的发放多种类型商品,假如现在我们有如下三种类型的商品接⼝;
序号
类型
接口
1
优惠券
CouponResult sendCoupon(String uId, String couponNumber, String uuid)
2
实物商品
Boolean deliverGoods(DeliveReq req)
3
第三方爱奇艺兑换卡
voi ...
html和css基础知识
网页就是由图片、链接、声音、视频等元素组成,就是一个.html文件
html超文本标记语言,专门制作网页的语言,有一套标签的组成
常用浏览器:IE、火狐、谷歌、Safari和Opera.
浏览器内核:负责读取网页内容,国内浏览器常用Webkit(Safari)、Blink(Chrome/opera)内核
web标准的构成:主要包括结构(structure)、表现(presentation)和行为(behavior)三个方面
结构:用于对网页元素进行整理和分类,现阶段主要学html
表现:用于设置网页元素的版式、颜色、大小等外观样式,主要指CSS
行为:指网页模型的定义及交互的编写,现阶段主要学 javascript
DOCTYPE和lang及lang的作用<!DOCTYPE html><!--文档类型声明,告知使用哪种html版本--><html lang="en"><!--当前文档的显示语言--><head> <meta lang="UTF-8"><! ...
vue如何使用bigemap
bigemap的使用vue中如何引入bigemap1.首先需要引入bigemap的js和css,定义一个map.js,主要完成为渲染出html文件添加bigemap。代码如下:
const scriptList = [ `http://www.bigemap.com/bigemap.js/v2.1.0/bigemap.js` // 如果有更多的JS要引用 ,也一起放到这个数组中]const linkList = [`http://www.bigemap.com/bigemap.js/v2.1.0/bigemap.css`]export default new Promise((resolve) => { linkList.map((v, index) => { const has = document.getElementById(`bigemap_link_${index}`) if (has) return const link = document.createElement('link ...