设计模式-访问者模式

这个模式,韩老师讲得非常不好。所以本文整理自各种博文。

1.为什么使用?

当需要对一个对象结构类(这个结构由一些不相关的类组成)进行操作扩展,而又不想改变这个对象结构类时,可以考虑使用访问者模式

举个案例,假设现在我们有一个描述商品的对象结构(想象成购物篮),当前装入了书和水果。那么现在这个结构看起来像这个样子:

一文透析构造者模式

0. 前言

为了更好的构建软件,最近我也踏上了学习设计模式之路。学习来源主要是 韩老师的视频,但是韩老师的工厂模式和构造者模式讲得极差,于是又看了蜗牛学院的课程,才对构建者模式有了较为深刻的理解。

私以为学习设计模式,绝不是知道一个案例,“背下”针对这个案例的解决方案和代码。设计模式更重要的是思想,从代码的历史角度去了解为何要使用这样的模式,才是正确的学习方式。

好了,废话了很多,现在开始讲解到底什么是建造者设计模式。

可能是Windows上最好用的Cmd窗口--Cmder+MSYS2+zsh

本文整理自大佬-“荒野无灯”的微信公众号文章。加了些自己在配置上遇到过的坑。

原文:https://mp.weixin.qq.com/s/O6LHgX8KKmfVWj9LupeLBw

SQL练习题

最近学了SQL基础,做点题练练手,

转载自:

-经典SQL练习题(MySQL版)

Linux配置Multipath访问iSCSI服务

系列文章:

1. Multipath简介

普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。

实现功能

  1. 故障的切换和恢复
  2. IO流量的负载均衡磁盘的虚拟化
  3. 磁盘的虚拟化

Linux配置iSCSI服务

系列文章:

《linux软riad配置详解》中讲解了如何在Linux中配置软raid,本文中我们将讲解如何让这个raid5可被客户端通过ISCSI服务访问。

实验平台:

Server端: Manjaro 内核4.9.214

Client端: Ubuntu18 内核 5.3.40

当然了,这里强烈推荐Server和Client端都是用CentOs,个人是因为笔记本已经装了Manjaro和Ubuntu不方便更换,所以就将就使用了。

Ubuntu18修改网卡接口名

ubuntu18上的默认网卡名为ens33,添加了网卡后的名字也“没什么规律”,所以这里说一下如何将ens33这类名字更改为原来的eth0,eth1的方法。

方法很简单:

  1. 编辑/etc/default/grub

    1
    2
    3
    4
    5
    root@ubuntu:~# vi /etc/default/grub

    找到GRUB_CMDLINE_LINUX=""

    改为GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
  2. 重新生成GRUB的启动菜单配置文件(/boot/grub/grub.cfg)

1
root@ubuntu:~# update-grub
  1. reboot即可

接下来添加网卡的名字都会按照ethx的方式来添加。

Java Path和Files类使用介绍

文本转载自: Java NIO之拥抱Path和Files

加上整理了些 《Java核心技术卷2 – 高级特性》第2章.

JAVA IO流总结

JAVA IO流总结

转载自:

  1. Java基础知识
  2. java I/O流详解

Java 中 IO 流分为几种?

  • 从流的方向划分:分为 输入流输出流
  • 从流的传输单位划分: 分为 字节流(8位字节),字符流(16位的字符)
  • 从流的角色划分: 分为 节点流处理流
    • 节点流是直接连接数据源的流,可以直接向数据源(特定的IO设备,如硬盘,网络,其他程序)读写数据
    • 处理流通过构造方法接收一个节点流,对节点流使用装饰者模式增加更多的功能,处理流必须依赖于一个节点流,因为只有节点流最终可以将数据流输入输出到IO设备中。
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×