很多设计模式的初衷,是“尽量少地修改既有代码”,能不动的,就不要去动。但是,如果你发现要实现新的需求,就不得不去修改既有代码,就说明这段代码该修改了。 例如,对于一个方法来讲,如果每当增加某个类别时,就需要修改这个方法,那么就不太对劲儿,也就散发出“臭味儿”的时候,就是需要使用设计模式的时候。 很多 ...
分类:
其他好文 时间:
2020-05-02 15:19:15
阅读次数:
57
这本书是18年买的了,当时我买了一堆书,以为自己不会成为屯书的仓鼠,没想到当时看了200页不到就再也没看;如今再次翻开,是因为参加 码农翻身 的读书活动,当年买书时还在的小仓鼠也飞天一年了= = 但还好当初我读了一些,这本书的前言部分教会了我一些学习方法。在我还上学时,我总觉得因为我太笨,不够聪明, ...
分类:
其他好文 时间:
2020-05-02 14:57:28
阅读次数:
67
AOP基础之代理设计模式 1. 静态代理模式 静态设计模式解决了软件分层过程中额外的功能代码侵入模块的问题,将额外的功能代码提取到了代理中进行,但是静态代理实现的代理者中存在大量重复代码,并没有解决代码重复问题。在真正开发中,包括spring底层,基本不会使用静态代码。 2. 动态代理 java内置 ...
分类:
编程语言 时间:
2020-05-02 14:52:55
阅读次数:
64
单一职责原则的英文是Single Responsibility Principle,简称SRP。我们在设计类的时候,尽量避免设计大而全的类,要设计粒度小、功能单一的类,使得一个类只负责完成一个功能,这样有利于提高代码的复用性、可读性、可维护性,实现代码高内聚、低耦合。 ...
分类:
其他好文 时间:
2020-05-02 11:56:24
阅读次数:
73
六大设计原则 单一职责 定义 每个类都应该有一个单一的功能 一个类或者模块应该有且只有一个改变的原因 规范 定义类的方法 避免类之间耦合度太高 里氏替换 定义 只要有父类出现的地方,都可以用子类来替代 规范 不要破坏继承体系 增加子类的时候系统可以正常执行 依赖倒置原则 定义 高层模块不应该依赖底层 ...
分类:
其他好文 时间:
2020-05-02 10:18:12
阅读次数:
77
一、备忘录模式的概念 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。 二、什么时候使用备忘录模式 备忘录模式也算是设计模式中,几个比较简单的设计模式之一。它的目的是用于保存对象当前的状态,并且在之后可以 ...
分类:
其他好文 时间:
2020-05-02 09:46:53
阅读次数:
127
定义 确保某个类只有一个实例 实现方式 饿汉式加载(线程安全) 等价于 懒汉式加载 非线程安全 线程安全 1. Double Check 2. 借助Lazy "示例代码 github" ...
分类:
其他好文 时间:
2020-05-02 09:27:16
阅读次数:
58
初入公司,让写三个验证方法,验证邮箱,验证姓名,验证密码: function checkName() {} function checkEmail() {} function checkPassword() {} 等价于: var checkName = function() {}; var che ...
分类:
Web程序 时间:
2020-05-02 09:19:29
阅读次数:
80
中介者模式 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。 这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。 中介者模式属于行为型模式。 实战应用参考:https://blog.csdn.net/lihangxiaoji/ ...
分类:
其他好文 时间:
2020-05-02 00:35:36
阅读次数:
94
目录 "设计模式——抽象工厂模式" "1. 模式简介" "2. 示例1 使用工厂模式实现对不同数据库的操作" "3. 示例2 多数据库且多表操作" "4. 重构示例2 使用简单工厂改进抽象工厂" "5. 重构示例2 反射+简单工厂" "6. 重构示例2 反射+配置文件+简单工厂" shanzm 20 ...
分类:
其他好文 时间:
2020-05-02 00:16:49
阅读次数:
77