摘要: 外观模式 其定义为:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一个子系统更加容易用。 (依然是说的十分抽象。。。) 具体表现为:定义一个Facade外观类,在这个外观类中调用各个子系统的方法或属性。这里的子系统可以理解为与外观类 构成了 聚合 关系。 publi 阅读全文
posted @ 2021-09-01 14:35 wumengchao1234 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 关联 比如链表中的ListNode prev next 这种属于自关联。还有一种表现为在A中定义一个B类的成员变量,在B中定义一个A的成员变量,这种属于双向关联,只有一方关联就称为单向关联。 聚合 多个成员变量聚合在一起组成一个对象,比如轮胎、车门、方向盘组成汽车。多个成员变量可以独立存在。 组合 阅读全文
posted @ 2021-09-01 13:51 wumengchao1234 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 模板模式都是由抽象类来定义一个算法,在算法实现的不同步骤上抽象方法由子类继承并提供具体实现,常见的就是不同步骤提供doXXX抽象方法留给子类实现。模板模式一般有两部分组成,即抽象模板和具体模板。 JDBCTemplate、RedisTemplate、MongoTemplate等均是典型的模板模式。 阅读全文
posted @ 2021-09-01 08:22 wumengchao1234 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 原形模式Prototype,指用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 基本思路是定义一个类,实现Cloneable接口,调用clone方法。 这就涉及到java中的深拷贝和浅拷贝。 Object类里的clone()方法仅仅用于浅拷贝(拷贝基本成员属性,对于引用类型仅返回指向改 阅读全文
posted @ 2021-09-01 08:10 wumengchao1234 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 简单工厂模式:定义一个工厂类,在工厂类中通过switch或if判断,决定应该创建哪个子类对象。创建子类对象是在这一个工厂类当中进行的。 其弊端在于每次新增都要去修改这个工厂类,违反了 开放-封闭原则。 工厂方法模式:定义多个工厂类,每一个Operation类都对应着一个工厂类。比如我们的计算器模型, 阅读全文
posted @ 2021-09-01 06:57 wumengchao1234 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 一、单一职责原则 不应该让一个类承担过多的职责。如果某一个类有多个职责,应该考虑职责分离。 比如定义一个摄像机的产品对象,很明显最好只让它有一个 摄像的职责,而不是应该让它还能发微信,记账等等。摄像机的单一职责就是摄像,加入其它东西就不合理。 张三好好开拖拉机耕地,不要用拖拉机载客 。载客是小轿车的 阅读全文
posted @ 2021-08-31 21:07 wumengchao1234 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 两种模式的思路非常像: 相同的部分在于: 都是先从操作中抽象出整体,得到一个最高级别的普通类/抽象类。 public abstract class FatherClass { public abstract void operate(); } 再让子类继承这个父类去override 相关的方法 pu 阅读全文
posted @ 2021-08-31 19:21 wumengchao1234 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 主要通过给GitHub设置SSH key的方式实现push权限控制。 $ ssh-keygen -t rsa -C "你的邮箱" Generating public/private rsa key pair. //这里指定秘钥文件路径,直接回车即可 Enter file in which to sa 阅读全文
posted @ 2021-08-30 19:06 wumengchao1234 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 参考:https://bbs.csdn.net/topics/280082639 interrupt()方法不会中断一个正在运行的线程。这一方法实际上完成的是,在线程受到阻塞时抛出一个中断信号,这样线程就得以退出阻塞的状态。更确切的说,如果线程被Object.wait, Thread.join和Th 阅读全文
posted @ 2019-08-05 17:05 wumengchao1234 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 斐波那契数列: f(n)=f(n-1)+f(n-2)(n>2) f(0)=1;f(1)=1; 1 递归调用 此种方法的缺陷:重复计算的次数太多,效率低 例如:在下图中,F(3)就重复计算了 "3次" 时间复杂度:O(2^N) 空间复杂度:O(N) 2 循环 时间复杂度:O(N)空间复杂度:O(1)( 阅读全文
posted @ 2018-07-25 11:14 wumengchao1234 阅读(302) 评论(0) 推荐(0) 编辑