- 博客(19)
- 收藏
- 关注
原创 论第一篇博客的重要性
欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写 博客: 全新的界面设计 ,将会带来全新的写作...
2019-10-18 15:20:29
141
原创 设计原则·依赖倒置原则
依赖倒置的定义: 高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象 。 大致意思是: 编程要面向接口,不建议面向实现。面向实现会导致功能块耦合度增加,在更新扩展功能的时候造成麻烦,而面向接口编程会更有利于系统功能的扩展。使用接口或者抽象类可以在一定的规范下不涉及细节实现,将这些细节实现交给其子类去完成。 依赖倒置原则的作用: 依赖倒置原则可以降低类间的耦合性。...
2019-12-19 16:20:47
184
原创 设计原则·里氏替换原则
这个原则是指: 一个程序里面的对象应该可以被它的子类替换,而不改变程序的正确性。 其实在平常的编码中就常用到这种原则。 public interface IStudent { List<Student> getStudent(); } public class IStudentImpl implements IStudent { @Override publ...
2019-12-19 16:19:22
130
原创 设计原则·开闭原则
开闭原则的含义是对扩展开放,对修改关闭。 意思就是在遇到新的需求或者变动的时候,提倡对原代码扩展使其满足新的需求,不提倡修改原代码来达到目的。 一个项目不可能在开发完毕后就一成不变了,它总会有新的需求或者对老的需求进行更新。这样就要尽可能的遵从设计原则中的开闭原则,这个原则告诉我们,要尽量避免对原代码的修改,而是要根据新的需求,来扩展现有的代码达到系统完善的目的。 比如现在和金融挂钩的项目,多少会...
2019-12-19 16:17:52
159
原创 设计原则·开闭原则
开闭原则的含义是对扩展开放,对修改关闭。 意思就是在遇到新的需求或者变动的时候,提倡对原代码扩展使其满足新的需求,不提倡修改原代码来达到目的。 一个项目不可能在开发完毕后就一成不变了,它总会有新的需求或者对老的需求进行更新。这样就要尽可能的遵从设计原则中的开闭原则,这个原则告诉我们,要尽量避免对原代码的修改,而是要根据新的需求,来扩展现有的代码达到系统完善的目的。 比如现在和金融挂钩的项目,多少会...
2019-12-19 16:16:46
146
原创 设计原则·接口隔离原则
接口隔离原则的目的在将一个接口中的方法分类,分割成诸多更细划分的具体小接口,每个接口中的方法都是有共性的。这样写的目的就在于提高一个接口中的内聚。 /* * 查询接口 */ public interface QueryService { /** * 查询班级 */ void QueryClazz(); /** * 查询学生 */ ...
2019-12-19 16:16:17
111
原创 设计原则·迪米特原则
设计原则**·**迪米特法则 迪米特法则又叫作最少知识原则,就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。 如果两个实体没有直接调用的必要,那么就可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性和复用性。但是这个法则也存在适用性,我们需要反复权衡,确保高内聚和低耦合的同时,保证系统的结构清晰。 如果只是单纯的两个实体之间的调用大可不必通过第三方,但是如果需...
2019-12-19 16:15:05
134
原创 设计原则·单一职责原则
设计原则·单一职责原则 单一职责字面意思就是每个类有着他们专属的责任,这样可以在更新某一个类逻辑的时候,不会影响到其他的逻辑。 单一职责原则中有个相关名词:职责扩散。 所谓职责扩散,就是因为某种原因,职责P被分化为粒度更细的职责P1和P2。 在职责扩散在控制范围内可以适当的根据需要以一个类来背负多个责任。 但是必须要在职责扩散失控之前重构代码。 语言类 public class Language ...
2019-12-19 16:14:05
115
原创 建造者模式
建造者模式 建造者模式适用于创建对象,可以经过多个简单对象而构建成一个复杂的对象以满足需求。 首先创建一个对象: public class PentaKill { private String one; private String two; private String three; private String four; private String ...
2019-11-14 16:02:41
111
原创 原型设计模式
原型设计模式 原型模式就是一种对象的创建方式,就好比克隆技术一样,将已存在的对象实例复制一份创建新的实例。使用原型模式创建的实例和已存在的实例不仅结构相同,其中的数据也是一模一样的。 根据对象克隆深度层次的不同,有浅客隆,深克隆。 浅克隆: public class ShallowClone implements Cloneable{ String name; String se...
2019-11-12 16:40:58
149
原创 单例设计模式
单例设计模式 单例模式的概要就是确保一个类只有一个实例,并提供一个全局访问点。 懒汉式单例: 对于实例做懒加载处理,即在客户第一次使用时再做创建,所以第一次获取实例的效率会稍微低一些。 /** * 将自身实例化对象设置为一个属性,并用static修饰 */ private static LazySingleton instance; /** * 静...
2019-11-11 18:22:09
112
原创 抽象工厂模式
抽象工厂模式 抽象工厂模式是一个超级工厂,用来创建其他工厂。 这个工厂也被称为工厂的工厂。 在抽象工厂模式中,接口负责创建相关对象的工厂,而不明确指定它们的类。 每个生成的工厂可以按照工厂模式提供对象。 提供一个创建一系列相关或相互依赖的对象的接口 , 无需指定它们具体的类: public interface AbstractInternetFactory { /** * 获取品牌...
2019-11-11 18:19:37
113
原创 工厂方法模式
工厂方法模式 /** * 根据品牌英文名称获取各品牌实例对象 * @param englishName * @return */ public static Brand getInstance(String englishName){ if(ADIDAS.equals(englishName)){ return new Adidas(); }else if(NIKE...
2019-11-11 18:18:45
147
原创 简单工厂模式
简单工厂模式 简单工厂模式又叫做静态工厂方法模式,他属于类创建型模式。 在简单工厂模式中,定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。 简单工厂模式将所有的实例创建集中到简单工厂类中进行,将创建对象获取实例的代码从应用代码中抽离,而是在简单工厂类的静态方法中处理创建对象的细节,如果创建的实例有扩展和改变,只需更新简单工厂类即可。 但由于使用静态方法来获取...
2019-11-11 18:18:01
130
原创 设计模式
设计模式 设计模式概念由GOF四人帮开创。 有两点面向对象的设计原则: 1、程序到一个接口不用实现。 2、有利于对继承对象组合。 主要用途: 1、设计模式提供了代码设计的思想,方便开发人员交流和系统维护 2、提供了一些问题解决方案,方便刚接触这些问题的开发人员可以借鉴套用 分类: 创造模式 - 工厂模式,抽象工厂模式,单例模式,原型模式,Builder模式 结构模式 - 适配器模式,桥接模式,组合...
2019-11-11 18:17:02
144
原创 Linux备用命令
linux备用命令 因为必要的调试需要查看日志,我习惯用Xshell来看服务器上的配置及日志文件。 但是没有运维那般高超的命令功底,所以每走的一步,都需要记录下来,慢慢的不需要查也能熟练的打出命令来达到自己的目的,让自己在服务器上为所欲为。 检查某方法的请求路径是否能走通: curl -I http://……/……/method 模糊查询日志 grep ‘error’ LOG.log -C 1...
2019-11-01 18:33:30
169
原创 空格导致程序意外暂停
空格导致程序意外暂停 昨天花了几个小时卡在一个问题上,线上有个几月前发布好的下载功能突然失效了,莫名其妙的报个空指针,没有了其他的任何信息。 测试和本地都想重现这样的BUG,都无济于事,模板的路径也没有问题,其他的账号也没有问题。 翻来覆去,终于发现了转机,在前台jsp中,Debug住一个问题,在下载的所选商家名称前面有个空格( ),随后就在本地赋予类似的值继续跑,也没有问题。 ...
2019-11-01 16:51:34
206
原创 Query was Empty异常
Query was Empty异常 今天写个基本的CRUD,因为是功能套功能的那种比较繁琐,复制粘贴也有走眼的时候。在发布测试的时候,居然出现个BUG:Query was Empty。 这样的信息乍一看,就觉得诡异,数据集合肯定是没有问题的,因为SQL都是在客户端测试没问题了挪到项目里的。 在细一看发现了猫腻,在赋予查询条件的时候,复制的有点顺,将这个表中没有的字段当做条件封装了进去,所以造成了...
2019-11-01 16:30:39
3433
原创 Redis初探总结
Redis redis是最为广泛的存储中间件。是一个速度非常快的非关系内存数据库。 与关系型数据库相比,redis的命令请求不需要经过查询分析器或查询优化器进行处理,也避免了更新数据时引起的随机读写这些慢操作。他直接读写内存中的数据,并且数据是按照一定的数据结构存储的,所以速度会加快。 Redis命令之key操作命令 清楚的当前数据库:flushdb 添加string类型的数据:set (k)...
2019-10-18 16:59:44
324
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅