Java
文章平均质量分 95
pyd950812
实战
展开
-
Java常用设计模式
Java23种设计模式原创 2022-11-23 14:36:01 · 438 阅读 · 0 评论 -
设计模式分享
Java常用设计模式介绍原创 2022-10-17 14:37:26 · 452 阅读 · 0 评论 -
设计模式之观察者模式
一、观察者模式 观察者模式(Observer),又叫发布-订阅模式(Publish/Subscribe),定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。UML结构图如下: 其中,Subject类是主题,它把所有对观察者对象的引用文件存在了一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供了一个接口,可以增加和删除观察者对象;Observer类是抽象观察者,为所有的具体观察者定...原创 2020-07-06 10:40:01 · 233 阅读 · 0 评论 -
SpringBoot使用Sharding-JDBC分库分表实战
一、准备工作1.准备两个database、4张table二、引入相关maven <!-- druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.9</ve.原创 2020-05-28 16:08:23 · 642 阅读 · 0 评论 -
设计模式之责任链模式
概念职责链模式(Chain of Responsibility)使多个对象都有机会处理同一个请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。责任链设计模式中的角色Handler抽象处理者(定义一个处理请求的接口,接口可以定义出一个方法,以设定和返回对下家的引用。通常由一个抽象类或接口实现)Concrete Handler具体处理者(具体请求者在接受到请求后,如果满足条件则自己处理请求,否则将请求传.原创 2020-05-19 09:51:46 · 202 阅读 · 0 评论 -
记一次Java并发本地内存、主内存相关
一、先上一段代码:package com.wx.wxjob;public class Test { public static void main(String[] args) { Aobing a = new Aobing(); a.start(); for (; ; ) { if (a.isFl...原创 2020-05-08 13:50:57 · 245 阅读 · 0 评论 -
代码优化之抽象类的引入
一、场景 场景:有个给不同类型的数据打上标签的功能。不同数据类型生成的标签规则不一样。二、编码实现1、首先定义一个抽象类(统一需要实现的方法)/** * FileName: AbstractMakeTagHandler * Author: pengyd * Date: 2020/3/13 * function: */public abstract clas...原创 2020-03-13 16:00:46 · 266 阅读 · 0 评论 -
SpringBoot项目整合Vue
一、首先需要安装vue所需环境以及基本项目架构(自行百度)vue项目架构如图:二、需要改动的页面App.vue<template> <div id="app"> <img src="./assets/logo.png"> <router-view/> </div></templa...原创 2019-12-31 16:22:18 · 274 阅读 · 0 评论 -
catch中为什么不建议使用e.printStackTrace
为什么尽量不用e.printStackTrace直接用e.printStackTrace来打印日志有错吗?当然不错,但是不好。主要原因有以下几点:1、占用太多内存,造成锁死要打印字符串输出到控制台上,需要字符串常量池所在的内存块有足够的空间。然而,因为e.printStackTrace() 语句要产生的字符串记录的是堆栈信息,太长太多,内存被填满了!大量线程产出字符串产出到一半,等待有...原创 2019-12-26 16:03:07 · 3002 阅读 · 1 评论 -
利用反射重构代码
一、需求先看代码:两个方法几乎一模一样,唯一的区别就是传入的对象不同二、改造利用反射,将对象映射成map,看代码:public Map<String, Object> class2Map(Object obj) { Class aClass = obj.getClass(); Field[] declaredFields = a...原创 2019-12-26 15:10:39 · 385 阅读 · 0 评论 -
工厂+策略模式消除if-else
需求代码改造:JSONArray result = new JSONArray(); switch (code) { case SUBJECT_IFACE_CODE: for (int i = 0, size = values.size(); i < size; i++) { ...原创 2019-12-26 10:59:13 · 540 阅读 · 0 评论 -
优雅的消除代码中的if-else
需求假设有这么一个需求:一个电商系统,当用户消费满1000 金额,可以根据用户VIP等级,享受打折优惠。根据用户VIP等级,计算出用户最终的费用。 普通会员 不打折 白银会员 优惠50元 黄金会员 8折 白金会员 优惠50元,再打7折 编码实现private static double getResult(long money, int ty...原创 2020-03-10 16:46:18 · 614 阅读 · 2 评论