【Java设计模式】组合模式

转自:  https://blog.csdn.net/qq_42322103/article/details/95457321

漫谈网站优化提速: https://blog.csdn.net/meteor_93/article/details/95518164

十分钟教你理解TypeScript中的泛型: https://blog.csdn.net/powertoolsteam/article/details/95479676

致敬创新者 | 看中国小企业掌握哪些核心技术: https://blog.csdn.net/csdnnews/article/details/95414226

用 python 拟合等角螺线: https://blog.csdn.net/xufive/article/details/93052866

Java 代码优化:使用构造函数和使用一个个setter的效率差别: https://blog.csdn.net/qq_27093465/article/details/92763548

实战 Java 第1天:从零开始搭建项目,实现第一个接口(IDEA):  https://blog.csdn.net/weixin_44135121/article/details/92801713

Excel表列序号: https://blog.csdn.net/weixin_41791402/article/details/95585137

判断Excel单元格中是否有错: https://blog.csdn.net/weixin_30834019/article/details/95578278

数据库学习小结:  https://blog.csdn.net/weixin_43561274/article/details/95529849

Java中的注解学习笔记: https://blog.csdn.net/qq_39826207/article/details/95524282

Windows上的程序员神器——Cmder: https://blog.csdn.net/qq_44830705/article/details/95374346

 

Docker Dockerfile详解:   https://blog.csdn.net/qq_37142346/article/details/95034711

程序员必知必会10大基础算法:  https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95552833

我为什么推荐Prettier来统一代码风格:  https://blog.csdn.net/Fundebug/article/details/78342784

Docker - Windows Server 2016 环境使用镜像加速和设置远程访问: https://blog.csdn.net/qq_15071263/article/details/95185530

类加载器ClassLoader和双亲委派机制: https://blog.csdn.net/weixin_43821892/article/details/95519016

mysql explain type的区别和性能优化: https://blog.csdn.net/lilongsy/article/details/95184594

 

7个IntelliJ IDEA必备插件,让写代码像火箭一样飞起:  https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95129040

世界上本没有架构,建设的需求多了便有了架构: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95129080

mysql根据身份证号获得年龄并对年龄进行分组查询在MyBatis中的应用: https://blog.csdn.net/shenxiaomo1688/article/details/94734807

MySQL存储过程工具持续更新—— 字段、索引、视图等操作: https://blog.csdn.net/boonya/article/details/95178439

MySQL 性能优化,索引和查询优化: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95041794

Chrome浏览器显示“由贵单位管理”解决方法: https://blog.csdn.net/woiangaoiowe/article/details/92832529

oracle存储过程中数组申明和遍历: https://blog.csdn.net/wwxthinking/article/details/92806531

数据库性能调优大全(附某大型医院真实案例): https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95129022

PostgreSQL的几种常见问题和解决方法: https://blog.csdn.net/international24/article/details/89710703

从草根到百万年薪程序员的二十年风雨之路: https://blog.csdn.net/wucz122140729/article/details/80467543

面试|Flink实现PageRank算法: https://blog.csdn.net/rlnLo2pNEfx9c/article/details/90992009

SpringCloud框架服务消费者-Ribbon: https://blog.csdn.net/u014131617/article/details/85990798

6月份Github上最热门的开源项目排行出炉: https://blog.csdn.net/zhangdaiscott/article/details/95371967

Docker Dockerfile详解: https://blog.csdn.net/qq_37142346/article/details/95034711

是什么导致了Spring Aop失效了: https://blog.csdn.net/sun5769675/article/details/95187532

蚂蚁金服十五年技术架构演进之路: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414986

jvm的那些设置参数你都知道吗: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414969

TCP和UDP的优缺点及区别: https://blog.csdn.net/longe20111104/article/details/85960590

Spring Boot 面试现场题: https://blog.csdn.net/weixin_44716935/article/details/89331286

ECharts 地图绘制与钻取简易接口: https://blog.csdn.net/triplestudio/article/details/95498891

Java面试官:兄弟,你确定double精度比float低吗: https://blog.csdn.net/qq_37181642/article/details/95498885

 

Linux 内核console设备实现详解: https://blog.csdn.net/rikeyone/article/details/95482978

为什么HashMap链表长度超过8会转成树结构: https://blog.csdn.net/ywlmsm1224811/article/details/95474366

SQL Server 存储过程 中常用的小套路: https://blog.csdn.net/qq_36445227/article/details/93307503

Sql的join和where的区别: https://blog.csdn.net/wxid2798226/article/details/92840389

字节跳动前端实习四面凉经..炎炎夏日的一丝清凉: https://blog.csdn.net/weixin_34331102/article/details/91463522

微信、支付宝二码合一扫码支付实现思路: https://blog.csdn.net/tianya900519/article/details/89468673

前端 100 问:能搞懂80%的请把简历给我: https://blog.csdn.net/github_34708151/article/details/95165589

Java实现QQ微信轰炸机1.0(乞丐版):  https://blog.csdn.net/xiao_xiao_b/article/details/93619747

公司倒闭 1 年了,而我当年的项目上了 GitHub 热榜: https://blog.csdn.net/u012702547/article/details/95309609

程序员加班突发晕厥,领导发飙:一定要保证五个小时的睡眠: https://blog.csdn.net/weixin_44330260/article/details/89818177

我以为我对Mysql索引很了解,直到我遇到了阿里的面试官: https://blog.csdn.net/hollis_chuang/article/details/95167242

29个你必须掌握的微服务面试问题(含答案解析):  https://blog.csdn.net/qq_37929553/article/details/95106365

悲催!谷歌员工中位数年薪达 170 万元,却仍买不起房: https://blog.csdn.net/csdnsevenn/article/details/95125751

 

macd金叉不涨又死叉准确率_MACD金叉周线选股公式怎么设置及计算:  https://blog.csdn.net/weixin_44905023/article/details/95499237

阿里云之《Ajax学习》——第1章 Ajax简介; https://blog.csdn.net/wangpailiulanqi8/article/details/95499033

springboot原理分析: https://blog.csdn.net/qq_37059004/article/details/95498149

为什么老外不愿意用MyBatis: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95268395

程序员吐槽:不和同事一起吃午饭,被领导批了!网友戏称:以后拉屎也要和同事一起,打成一片: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414852

汇编 (三) 寄存器(内存访问): https://blog.csdn.net/u010034085/article/details/95375530

java重载方法的理解和应用: https://blog.csdn.net/hdy14/article/details/95520256

基于Spring Boot+Cloud构建微云架构: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414877

浅谈对JAVA堆栈的理解:  https://blog.csdn.net/qq_38194037/article/details/95518122

老板借二十万发年终奖,员工拿到钱后立马辞职:  https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95268162

React基础(下):  https://blog.csdn.net/taylor_lin/article/details/95520160

c++|力扣|从排序数组中删除重复项: https://blog.csdn.net/weixin_38172774/article/details/95519265

吃货告诉你IaaS、PaaS、SaaS之间的区别: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95268225

百度自从取消餐补,公司同事天天七点多就跑了,八点基本工位都空了: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95128867

《程序员的数学6:递归》: https://blog.csdn.net/bohu83/article/details/95112515

 

云计算时代,你真的懂 Docker 吗:  https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95128939

2019 年,Hadoop 还是数据处理的可选方案吗: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95268251

记一次有惊无险的 JVM 优化经历: https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95268343

高阶 numpy 数组快速插值(高阶快插)算法探讨: https://blog.csdn.net/xufive/article/details/94718525

CSDN云计算: https://blog.csdn.net/FL63Zv9Zou86950w/article/details/94682505

2019年必须掌握的29个微服务面试问题(下): https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95128977

Postgresql管理系列-第五章 并发控制: https://blog.csdn.net/dazuiba008/article/details/94648314

没有互联网的寒冬,只有程序员的寒冬(一): https://blog.csdn.net/nine_million_ITdream/article/details/89093741

裸辞2个月找不到工作,我慌了: https://blog.csdn.net/job51BBS/article/details/90377468

python实现完全备份和增量备份: https://blog.csdn.net/sxjwcs/article/details/95520328

【前端三分钟】优化判断语句: https://blog.csdn.net/ImagineCode/article/details/95489205

2019年小白学习web前端路线图及学习攻略: https://blog.csdn.net/nnnn1235657/article/details/94763465

it程序员刷题 中文网站收集: https://blog.csdn.net/whatday/article/details/95189997

Vue:从单页面到工程化项目: https://blog.csdn.net/mouday/article/details/95041305

2019版互联网+UI/UE路线图(内含大纲+视频+工具+书籍+面试): https://blog.csdn.net/c2289206/article/details/94763469

 

GitHub使用指南——建立仓库、建立文件夹、上传图片详细教程:   https://blog.csdn.net/Sophia_11/article/details/95051346

简易javascript图片轮播代码:   https://blog.csdn.net/rubbish_Timor/article/details/94763565

 

shell编程入门详解--从基础到调试:  https://blog.csdn.net/qq_21845263/article/details/95069809

一次线上服务器磁盘耗尽的问题排查处理: https://blog.csdn.net/weixin_39800144/article/details/95042788

正则表达式匹配: https://blog.csdn.net/weixin_44548843/article/details/94874866

Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解:   https://blog.csdn.net/abc13526222160/article/details/94874247

跟我学SpringCloud | 第十一篇:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪:  https://blog.csdn.net/meteor_93/article/details/95041171

新特性解读 | MySQL 5.7升级到MySQL 8.0的注意事项:   https://blog.csdn.net/ActionTech/article/details/95187073

高并发核心技术 - 幂等性 与 分布式锁:  https://blog.csdn.net/weixin_45273693/article/details/95103355

vue项目 微信支付 和 支付宝支付: https://blog.csdn.net/zyg1515330502/article/details/94737044

rest的API查询结果为null,返回404还是200: https://blog.csdn.net/u013189824/article/details/95493764

Python学习目录:  https://blog.csdn.net/zhanshen112/article/details/90339777

python学习第三周之文件修改: https://blog.csdn.net/wuxiaorututu/article/details/95491884

程序员才能看得懂的段子,内含表情包,吃饭的时候别点:  https://blog.csdn.net/zhuguanghalo/article/details/89853208

OPPO Java后端校招提前批面试: https://blog.csdn.net/qq_38593781/article/details/95459828

分布式 | DBLE 负载均衡方案:  https://blog.csdn.net/ActionTech/article/details/95334129

java中集合总结:  https://blog.csdn.net/qq_36473318/article/details/91618859

智能机器人自动巡检系统的设计与实现: https://blog.csdn.net/lfdfhl/article/details/95355351

JavaScript常用正则表达式记录: https://blog.csdn.net/qq_17150765/article/details/95491669

oracle创建用户: https://blog.csdn.net/qq_39508627/article/details/95491648

阿里高级java第一轮电面: https://blog.csdn.net/qq_31294693/article/details/89047284

Eclipse设置Java代码注释模板: https://blog.csdn.net/qq_37377611/article/details/95498511

Visual Studio Code(微软代码编辑器)v1.36.1更新啦: https://blog.csdn.net/weixin_42797672/article/details/95498981

mysql视图创建以及权限: https://blog.csdn.net/chenhongming888/article/details/95498896

Nuxt.js+axios+element-ui 项目搭建,并将项目提交到Gitee: https://blog.csdn.net/heheyixiao233/article/details/95498752

pdb 同步到aof:  https://blog.csdn.net/a1148233614/article/details/95498816

Vue教程03(事件修饰符):  https://blog.csdn.net/qq_38526573/article/details/94874277

数据库风云五十载:老骥伏枥,新秀迭起:    https://blog.csdn.net/csdnnews/article/details/95041771

多线程重点难点解答:  https://blog.csdn.net/qq_39581763/article/details/95498984

Redux源码系列-Redux-thunk源码分析:  https://blog.csdn.net/qq1498982270/article/details/95499002

 

Webpack 4 动态切割JS注入文件名: https://blog.csdn.net/crper/article/details/95177261

Java实现BST:搜索二叉树: https://blog.csdn.net/weixin_42220532/article/details/94050751

Spring Boot---(25)SpringBoot使用AOP:  https://blog.csdn.net/weixin_39800144/article/details/83013946

MySQL聚簇索引和非聚簇索引的理解:  https://blog.csdn.net/w605283073/article/details/95255618

匈牙利算法的基本原理与Python实现: https://blog.csdn.net/NIeson2012/article/details/95203609

Docker 容器磁盘占满的几种情况: https://blog.csdn.net/isea533/article/details/95197468

网商银行×SOFAStack:首家云上银行的微服务架构实践与演进: https://blog.csdn.net/weixin_44326589/article/details/95317666

 

优秀程序猿写技术文档的正确姿势: https://blog.csdn.net/w605283073/article/details/91609253

 

java 实现 创建 二叉树 tree 遍历 二叉树 递归 非递归 先中后序 方式遍历 广度优先 深度优先 搞起来 :  https://blog.csdn.net/weixin_42749765/article/details/94737141

vue2.0仿微信界面聊天室|vue聊天实例:   https://blog.csdn.net/weixin_34292402/article/details/91465064

RetinaFace,最强开源人脸检测算法:  https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/95400941

快速了解基于AQS实现的Java并发工具类:  https://blog.csdn.net/y277an/article/details/95136569

如何使用FotoJet Designer for Mac添加和自定义剪贴画:  https://blog.csdn.net/lizhangl/article/details/95491429

 

FotoJet Designer for Mac如何添加和编辑文本?FotoJet Designer使用教程:  https://blog.csdn.net/lizhangl/article/details/95491306

百度巨变的2019年,都经历了什么鬼:  https://blog.csdn.net/lin000001/article/details/95491162

使用FotoJet Designer for Mac如何添加和调整照片:   https://blog.csdn.net/lizhangl/article/details/95491217

spring-cloud学习笔记之中间件、增强生态:   https://blog.csdn.net/Zeriter/article/details/95491060

Soloπ:支付宝开源的Android专项测试工具:  https://blog.csdn.net/weixin_44326589/article/details/95479927

python3 在数字信号处理的应用(二):  https://blog.csdn.net/weixin_38798274/article/details/93884342

Win10自带Ubuntu系统安装及使用过程填坑:   https://blog.csdn.net/beyond9305/article/details/95211016

Linux生产环境上,最常用的一套“Sed“技巧:   https://blog.csdn.net/lycyingO/article/details/95306600

吃个快餐都能学到串行、并行、并发:  https://blog.csdn.net/u011642663/article/details/95302086

mysql 动态统计某时间内登陆次数:  https://blog.csdn.net/qq_36144258/article/details/94585846

“分库分表" ?选型和流程要慎重,否则会失控【方案引导】:   https://blog.csdn.net/lycyingO/article/details/95164935

实战 Java 第4天:开发信息发布、获取列表信息接口:   https://blog.csdn.net/weixin_44135121/article/details/95296797

前端必会!四步带你吃透浏览器渲染基本原理:   https://blog.csdn.net/csdnnews/article/details/95267307

商城系统学习总结(1)——订单与库存在高并发场景下案例解析:   https://blog.csdn.net/u012562943/article/details/95308834

高并发 限流,到底限的什么鬼 (精品长文):  https://blog.csdn.net/qq_34446716/article/details/95465371

前后端分离项目session跨域失效的解决方案: https://blog.csdn.net/weixin_43358050/article/details/95461407

一个xlsx转lua的python小工具: https://blog.csdn.net/qq_30372933/article/details/95486642

 

python高并发的详解 https://blog.csdn.net/weixin_42099319/article/details/95488340

Java的内存逻辑模型 https://blog.csdn.net/cdy1221/article/details/95077564

2019版产品经理学习路线图(内含大纲+视频+工具+书籍+面试)  https://blog.csdn.net/c2289206/article/details/94761580

Java课设:火车售票系统2.0  https://blog.csdn.net/weixin_44372699/article/details/93225931

3天用vue写一个简单的app  https://blog.csdn.net/weixin_34034670/article/details/91463470

【收藏】一键关闭Win10自动更新脚本  https://blog.csdn.net/weixin_44875633/article/details/91463104

设置免密登录ssh  https://blog.csdn.net/weixin_43548686/article/details/95487479

Git - 生成 SSH 公钥,免密码登录  https://blog.csdn.net/Boiled_meat/article/details/95487431

springboot 动态添加定时任务(配合数据库增删查改定时任务)  https://blog.csdn.net/fanghuainihao/article/details/95462526

static关键字 self 后期静态绑定 抽象类 接口 final关键字  https://blog.csdn.net/sinat_38804294/article/details/95477690

Echarts + 中国地图+事件报警撒点  https://blog.csdn.net/cjvalue/article/details/95487342

第四篇:断路器(Hystrix)(Finchley版本) https://blog.csdn.net/chyercn/article/details/95481819

MySQL操作数据库和表的基本语句(DDL) https://blog.csdn.net/weixin_44420511/article/details/91884834

程序人生:初学者最常问的几个问题  https://blog.csdn.net/weixin_44015669/article/details/90346978

WEB前端之HTML 规范: https://blog.csdn.net/nnnn1235657/article/details/94763262

前端知识每日小拷问 003 跨域和事件模型相关: https://blog.csdn.net/WU5229485/article/details/95057976

 

Java面试相关-线程  https://blog.csdn.net/qq_42243991/article/details/95487418 

高并发 限流,到底限的什么鬼 (精品长文): https://blog.csdn.net/lycyingO/article/details/94593304

MySQL实现for循环逐个遍历: https://blog.csdn.net/Bulter1996/article/details/91911136

5、Button代码中修改按钮的状态: https://blog.csdn.net/lianghui0811/article/details/95455483

webstorm自动补全,即HTML标签简写规则: https://blog.csdn.net/TZJD89/article/details/95448658

Mybatis之 Mapper接口方式的开发整合: https://blog.csdn.net/weixin_44117272/article/details/95452407

聊聊 Activity 栈的亲和关系: https://blog.csdn.net/freekiteyu/article/details/95445586

十分钟学会SSH+SFTP操作终端,告别XShell: https://blog.csdn.net/weixin_38405253/article/details/95423693

【Centos】Mysql修改数据文件目录或解决部分报错: https://blog.csdn.net/u013569329/article/details/95447023

window.open以post方式提交(隐藏参数): https://blog.csdn.net/qq_15146507/article/details/95455464

Mysql基本的查询方法总结:mysql创建表、索引及创建用户权限常用操作,读了这篇后从建库建表到删库的操作你都会了: https://blog.csdn.net/xuejunling/article/details/95454157

点击图片用原生js&jquery获取图片src属性值: https://blog.csdn.net/qq_42817227/article/details/95454711

Shell脚本8种字符串截取: https://blog.csdn.net/zj420964597/article/details/95455236

7 个有用JavaScript技巧: https://blog.csdn.net/qq_43258252/article/details/94737380

 

Nginx(七) 测试使CPU占用更多能否提升并发数:  https://blog.csdn.net/weikaixxxxxx/article/details/85986510

一文学会Java死锁和CPU 100% 问题的排查技巧: https://blog.csdn.net/u010648555/article/details/94778019

 

Java POI导入导出Excel文件: https://blog.csdn.net/qq_31984879/article/details/91611713

2019版Linux云计算+运维开发路线图(内含大纲+视频等资料): https://blog.csdn.net/c2289206/article/details/94762579

程序员3年工资从7千到2万2,晒出跳槽经历!网友:厉害: https://blog.csdn.net/csdngkk/article/details/95342340

Oracle 关于锁,死锁,解锁的一些问题: https://blog.csdn.net/tksnail/article/details/94736461

Python游戏-实现键盘控制功能: https://blog.csdn.net/qq_43709494/article/details/90634111

3招教你轻松解决开关电源的电磁兼容性问题: https://blog.csdn.net/weixin_45187647/article/details/95453298

springboot出现的问题: https://blog.csdn.net/wujing1_1/article/details/95450080

Java中split函数的用法: https://blog.csdn.net/qq_37084904/article/details/95450585

JVM 面试考点总结 https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95552853

centos下SVN版本库的安装配置使用 https://blog.csdn.net/Aylan_/article/details/95590670

call、apply、bind函数在改变函数运行时this的指向问题的区别 https://blog.csdn.net/XU441520/article/details/94761371

Hadoop数据收集与入库系统Flume与Sqoop https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95552873

【多线程】Thread和Runnable区别: https://blog.csdn.net/dfshsdr/article/details/92432519

 

Java基础(五) final关键字浅析: https://blog.csdn.net/fengdongsuixin/article/details/93377946

Python 可迭代对象、迭代器、生成器的详解 https://blog.csdn.net/Fe_cow/article/details/95482672

边缘计算的三种模式:MEC、微云和雾计算 https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95552951 JS验证图片格式和大小并预览 https://blog.csdn.net/ShaoDu/article/details/95589705

基于Spring Boot+Cloud构建微云架构 https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414877 

JVM 发生内存溢出的 8 种原因、及解决办法https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414899 

JAVA基础(多线程死锁) https://blog.csdn.net/Cricket_7/article/details/95591068

直接拿来用!Vue.js 第三方常用插件盘点 | CSDN 博文精选 https://blog.csdn.net/csdnnews/article/details/95414360

2019版云计算大数据学习路线图(含大纲+视频+工具+书籍+面试) https://blog.csdn.net/c2289206/article/details/94763022

为啥你身边没有40+的程序员 https://blog.csdn.net/mogoweb/article/details/92477059

c# float和double的“坑” https://blog.csdn.net/weixin_30522183/article/details/95449098

Oracle中Clob类型处理解析:ORA-01461:仅可以插入LONG列的LONG值赋值 https://blog.csdn.net/weixin_30292745/article/details/95449102

Libra的Move编程语言到底是个啥? 美女程序员通读26页的白皮书后, 找出了这些精华… | 技术头条... https://blog.csdn.net/Blockchain_lemon/article/details/95269663

详解ConcurrentHashMap及JDK8的优化 https://blog.csdn.net/y277an/article/details/95041965

源码阅读(7):Java中主要的List、Deque结构——LinkedList集合(中) https://blog.csdn.net/yinwenjie/article/details/94590445

高并发 Nginx+Lua OpenResty系列(1)——环境搭建  https://blog.csdn.net/meteor_93/article/details/94309027

闪电网络 https://blog.csdn.net/s_lisheng/article/details/93637690

深度解析RocketMQ Topic的创建机制 https://blog.csdn.net/zchdjb/article/details/90795265

【解决】win10 启用系统保护 灰色 不可选 的解决办法 https://blog.csdn.net/weixin_30544657/article/details/95449136

大数据平台技术栈 https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/95414912

substring函数详解 https://blog.csdn.net/weixin_30587927/article/details/95437642

HTTP错误 404.17–Not Found 请求的内容似乎是脚本,因而将无法有静态文件处理程序来处理... https://blog.csdn.net/weixin_30763397/article/details/95449105

 

SQLServer2005,2000获取表结构:字段名、类型、长度、主键、非空、注释  https://blog.csdn.net/weixin_30295091/article/details/95449110

计算两条直线的交点(C#) https://blog.csdn.net/weixin_30700099/article/details/95449112

Python基础项目:超市商品销售管理系统 https://blog.csdn.net/u012156341/article/details/89375307

6月份Github上最热门的Java开源项目!https://blog.csdn.net/zhangdaiscott/article/details/95373161

网站开发:从写代码到公网访问整个流程 https://blog.csdn.net/sunnyzyq/article/details/95062942

 

MySql如何编写高效的SQL(转)  https://blog.csdn.net/zuishengmengsi_/article/details/95452115

Jsoup递归解析html标签 https://blog.csdn.net/pandalovey/article/details/95451824

 

 

 

 

 

JVM 发

 

 

 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
文章目录
概述
适用场景
优点
缺点
组合-相关设计模式
演示
概述
◆ 定义:将对象组合成树形结构以表示”部分-整体”的层次结构

◆ 组合模式使客户端对单个对象和组合对象保持一致的方式处理

◆ 类型:结构型

适用场景
◆ 希望客户端可以忽略组合对象与单个对象的差异时

◆ 处理一个树形结构时

优点
◆ 清楚地定义分层次的复杂对象,表示对象的全部或部分层次

◆ 让客户端忽略了层次的差异,方便对整个层次结构进行控制

◆ 简化客户端代码

◆ 符合开闭原则

缺点
◆ 限制类型时会较为复杂

◆ 使设计变得更加抽象

组合-相关设计模式
◆ 组合模式和访问者模式

演示
创建目录组件的抽象类

//目录组件
public abstract class CatalogComponent {
    public void add(CatalogComponent catalogComponent){
        throw new UnsupportedOperationException("不支持添加操作");
    }

    public void remove(CatalogComponent catalogComponent){
        throw new UnsupportedOperationException("不支持删除操作");
    }


    public String getName(CatalogComponent catalogComponent){
        throw new UnsupportedOperationException("不支持获取名称操作");
    }


    public double getPrice(CatalogComponent catalogComponent){
        throw new UnsupportedOperationException("不支持获取价格操作");
    }


    public void print(){
        throw new UnsupportedOperationException("不支持打印操作");
    }

}

创建继承该类的课程(相当于菜单)

public class Course extends CatalogComponent {
    private String name;  //课程名称
    private double price;  //课程价格

    public Course(String name, double price) {
        this.name = name;
        this.price = price;
    }

    @Override
    public String getName(CatalogComponent catalogComponent) {
        return this.name;
    }

    @Override
    public double getPrice(CatalogComponent catalogComponent) {
        return this.price;
    }

    @Override
    public void print() {
        System.out.println("Course Name:"+name+" Price:"+price);
    }

}

创建继承抽象类的目录

import java.util.ArrayList;
import java.util.List;

public class CourseCatalog extends CatalogComponent {
    //目录组件
    private List items = new ArrayList();
    private String name;  //目录名称
    private Integer level;  //目录级别


    public CourseCatalog(String name,Integer level) {
        this.name = name;
        this.level = level;
    }

    @Override
    public void add(CatalogComponent catalogComponent) {
        items.add(catalogComponent);
    }

    @Override
    public String getName(CatalogComponent catalogComponent) {
        return this.name;
    }

    @Override
    public void remove(CatalogComponent catalogComponent) {
        items.remove(catalogComponent);
    }

    @Override
    public void print() {
        System.out.println(this.name);
        for(CatalogComponent catalogComponent : items){
            if(this.level != null){
                for(int  i = 0; i < this.level; i++){
                    System.out.print("  ");
                }
            }
            catalogComponent.print();
        }
    }

}

测试类:

public class Test {
    public static void main(String[] args) {
        CatalogComponent linuxCourse = new Course("Linux课程",11);
        CatalogComponent windowsCourse = new Course("Windows课程",11);

        CatalogComponent javaCourseCatalog = new CourseCatalog("Java课程目录",2);

        CatalogComponent mmallCourse1 = new Course("Java网络编程",55);
        CatalogComponent mmallCourse2 = new Course("Java编程思想",66);
        CatalogComponent designPattern = new Course("Java设计模式",77);

        javaCourseCatalog.add(mmallCourse1);
        javaCourseCatalog.add(mmallCourse2);
        javaCourseCatalog.add(designPattern);

        CatalogComponent imoocMainCourseCatalog = new CourseCatalog("计算机课程主目录",1);
        imoocMainCourseCatalog.add(linuxCourse);
        imoocMainCourseCatalog.add(windowsCourse);
        imoocMainCourseCatalog.add(javaCourseCatalog);

        imoocMainCourseCatalog.print();
    }
}

结果:


UML图:

这里屏蔽了细节 很容易发现树形结构
CatalogComponent是抽象类
CourseCatalog是抽象类的实现类 负责了目录的级别
Course也是抽象类的实现类,负责了菜单

目录界别 加 菜单内容 组合成目录
这里起到关键作用的是 抽象类 和分离组合的思想

看一下没有屏蔽细节的UML

换一种角度

--------------------- 
作者:沉晓 
来源:CSDN 
原文:https://blog.csdn.net/qq_42322103/article/details/95457321 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(java)