自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 设计模式--类图六大关系

类图说明 依赖:只要类中用到了另一个类,那么他们就存在依赖关系 泛化:泛化关系实际上就是继承关系,是依赖关系的特例 实现:A类实现B类 关联:对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。 聚合:表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期 如下,Computer中鼠标和显示器可以从电脑上分离,所以是聚合关系 class Computer{ pr

2021-01-08 16:30:26 285

原创 设计模式--合成复用原则

尽量使用合成/聚合的方式,而不是继承

2021-01-08 16:05:33 229

原创 设计模式--迪米特法则

一个软件实体应当尽可能少地与其它实体发生相互作用,迪米特法则的初衷在于降低类之间的耦合 直接朋友:我们称出现在成员变量、方法参数、返回值中的类为直接朋友,出现在局部变量中的类不是直接的,为陌生类。 迪米特法则指导我们: 不要出现陌生类 类定义时尽量内敛,少使用 public 权限修饰符,尽量使用 private、protected 等,这样也是减少成为别人陌生类的方法 反例:学校员工和学院员工管理 /** * 学校总部员工 */ class SchoolEmployee { private

2021-01-08 16:01:22 307

原创 设计模式--开闭原则

对拓展开放、对修改关闭 有两种理解 模块应该在尽量不修改代码的前提下进行拓展 提供方的变动不会引起使用方的修改 这就指导我们用抽象来构建框架,用实现拓展细节 上一段代码,根据图形代码画图形 class Shape { int type; } /** * 矩形 */ class Rectangle extends Shape { Rectangle() { this.type = 1; } } /** * 这是绘制图形的类 */ class Graphi

2021-01-08 15:12:03 187

原创 设计模式--里氏替换原则

所有引用基类的地方必须能透明地使用其子类的对象 继承在带来便利的同时给程序带来了侵入性,试想一个类被继承后,父类的任意修改都要考虑到子类。如何正确的使用继承-----里式替换原则 里式替换原则告诉我们 在使用继承时,尽量不要重写父类的方法(子类重写了父类的方法,使用父类的地方就不能透明地使用子类了,因为逻辑不一样了) 继承实际上让两个类之间耦合性增强了,在适当情况下,可以通过聚合,组合,依赖来解决问题 代码 class A { public int function1(int num1,

2021-01-08 14:24:27 151

原创 设计模式-依赖倒置原则

程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合 反例 public class Customer { public void shopping (YanTaShop shop) { System.out.println(shop.sell()); } } 以上表示顾客在 “雁塔店” 进行购物,假如再加入一个新的店铺 “高新店”,表示修改如下 public class Customer {

2021-01-08 13:50:57 131

原创 设计模式-接口隔离原则

类间的依赖关系应该建立在最小的接口上 反例: UML图 代码: interface Interface1 { void operation1(); void operation2(); void operation3(); void operation4(); void operation5(); } class B implements ltq.Interface1 { @Override

2021-01-08 13:37:30 144

原创 设计模式-单一原则

单一原则 接口和类级别都存在单一原则,不要一味的追求类级别的单一原则,会导致类过多

2021-01-08 13:12:21 186

原创 遇到的问题解决

新启动的nginx需要root权限才能启动 原因:linux中1024以下的端口默认只有root才能操作,nginx默认端口是80,小于1024,所以非root用户无法启动。 解决方法:修改nginx服务端口大于1024,比如8088 linux卸载 原因:linux中安装的方式有很多种,比如yum 、npm、源码包安装,不同的安装方法卸载方法也不一样,此处记录源码安装的软件如何卸载 解决方法:一...

2020-02-13 22:22:08 366

原创 M--数据库

https://blog.youkuaiyun.com/moakun/article/details/79927830 B树 1、当我们利用索引查询的时候,能把整个索引加载到内存吗?显然不能,能做的只有逐一加载每一个磁盘页,这里的磁盘对应着索引树的节点。所以二叉树的IO次数是树高。 2、相比磁盘IO的速度,内存中的比较耗时几乎可以忽略不计。所以二叉树的深度问题导致他的耗时。B数变深度为宽度,IO次数减少 ...

2020-01-14 14:44:35 713

原创 maven deploy到私服

1、在maven的setting.xml里添加要上传的url的用户名和密码 <servers> //release版本 <server> <id>releases</id> <username>your user name</username>...

2019-05-14 16:07:09 2149

原创 动态代理

首先说明两方法的参数含义; 第一个 Proxy.newProxyInstance(loader, interfaces, h) loader:类加载器。实体对象通过 .getClass().getClassLoader()得到,类用 .class.getClassLoader(); interfaces:是接口类的组合。如果是接口就用new Class[] { InterFace.class };...

2019-03-30 13:53:30 150

原创 JSON对象的简单操作

总结:各种对象间的转换,都可以以json字符串为中转站 package com.dl.myboot.JsonNode; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com....

2019-03-05 14:20:48 222

翻译 Kafka入门

1. 特点 同时为发布和订阅提供高吞吐量,即使是非常廉价的商用机也能做到支持每秒100K条数据传输。 消息持久化。将消息持久化到磁盘,因此可用于批量消费。 分布式 消费消息采用Pull模式。消息被处理状态是在Comsumer端维护的,而不是由服务器端维护,即Consumer自己保存offset,Broker无状态 2.基本概念 Broker:Kafka集群中的一台或多台服务器。 Topic:消息...

2019-02-27 16:45:21 173

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除