![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 50
qq_23204557
这个作者很懒,什么都没留下…
展开
-
第一次发布上线失败
也是第一次在公司呆到过了零点。其实晚上脑子已经转不起来,功能失败的原因还是zq发现的:c接口调用f接口失败,而我这边也没有报错和做相应处理。他发现原因后拉着我聊了一阵子。总结几点教训吧:用面向过程的思想来使用面向对象的语言,造成代码又臭又长。推荐书《重构》系统间的接口相对而言更容易出问题。在调用外部api时,比如http rest api,除了正常返回,也应该约定错误时的返回结果第3点和第2点直接相关。应该注意错误处理,否则一不小心就把错误吞了,这会给错误溯源造成困难...原创 2021-09-01 01:15:21 · 85 阅读 · 0 评论 -
Mutable members should not be stored or returned directly
Mutable objects are those whose state can be changed. For instance, an array is mutable, but a String is not. Mutable class members should never be returned to a caller or accepted and stored directly. Doing so leaves you vulnerable to unexpected changes i转载 2021-08-21 02:39:39 · 617 阅读 · 0 评论 -
单例模式在序列化场景会怎样,如何解决
序列化对单例的破坏首先来写一个单例模式的类(为了比较equals的效果,我加进了一个实例字段并重写了hashCode和equals方法,这不重要):public class Singleton implements Serializable{ private int field = 3; @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result +原创 2021-05-09 22:33:21 · 150 阅读 · 0 评论 -
代理模式与AOP等
静态代理动态代理原创 2020-10-29 02:23:48 · 78 阅读 · 0 评论 -
一些设计模式的实例
建造者模式(Builder pattern)(其表现形式就是可以链式调用?):JDK中的StringBuilder.appendSpring的拦截器的InterceptorRegistration.addPathPatterns/excludePathPatterns原创 2020-05-25 03:23:25 · 151 阅读 · 0 评论 -
适配器模式(Adapter)
适配器可分为类适配器和对象适配器。其比较可参考 适配器模式之类适配器与对象适配器的区别及代码实现。本文只关注对象适配器。对象适配器的UML图如下:对象适配器模式包含如下角色Target(目标抽象类):定义客户所需接口,可以是接口、抽象类或者具体类Adapter(适配器):继承实现Target,关联Adaptee,完成接口的转换Adaptee(被适配者):定义存在的接口,被适配器适配对象适配器的核心是适配器Adapter继承或者实现目标类Target,委派被适配者Adaptee(关联关系)完成任原创 2020-05-23 05:26:14 · 202 阅读 · 0 评论 -
单例模式
为推荐的一种方法,可防止反射攻击。public class Singleton { // 私有构造函数 private Singleton() { } public static Singleton getInstance() { return SingletonEnum.INSTANCE.getInstance(); } private enum SingletonEnum { INSTANCE;原创 2020-05-23 03:53:04 · 120 阅读 · 0 评论 -
面向对象设计的SOLID原则
SOLID原则:s单一责任原则o开闭原则l里氏替换原则i接口分离原则d依赖倒置原则参考自面向对象设计的SOLID原则里氏替换原则:当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系. 以下参考https://www.cnblogs.com/wang-can/archive/2013/10/01/3348302.html通俗的定义:子类可以扩展父类的功能,但不能改变父类原有的功能,就是不要去重写父类的方法。里氏替换原则包含以下4层含义:1,子类可以实现父类的抽象方原创 2020-05-23 00:28:50 · 123 阅读 · 0 评论