文章列表
代理模式 代理模式: 把方法抽成接口,使用具体实现类,实现接口,代理类也实现接口 + 依赖具体实现类,委托具体实现类,实现接口 动态代理,通过java API 动态创建代理类,减少类的创建 代理模式的主要场景在于关注业务而非关注具体实现,使得业务代码更加清晰,明朗,一些独立复杂的业务都可以通过代理模
建造者模式与原型模式 构造者模式:构建比较复杂,参数比较多是可使用,用静态内部类,build(),帮助自己初始化类 原型模式:当一个类比较难以初始化时,复制出宁外一个类,可以使用原型,java Object clone是浅拷贝,只复制索引,不创建真正的类,若使用深拷贝可以递归创建,或者使用序列化+反
工厂模式 创建类用的 场景: 1.代码中存在if-else分支判断,动态创建对象 2.对象创建比较复杂,例如需要组合其他类,初始化比较复杂 1.简单工厂: 类图 除了if-else的方式还可以用map提前吧对象准备好 缺点,拓展类时,不符合开闭原则,不容易拓展,if-else逻辑比较复杂时,判断方法
单例模式 单例模式:一个类只能创建一个对象 场景:对于一些配置文件,数据操作的对象 5种常见单例 (1)饿汉式单例:在初始时new静态对象,缺点,不支持延时加载 (2)懒汉式单例:在getinstance中new 静态对象,加了锁,性能不好,支持延时加载 (3)双重检查单例: public clas
发现代码质量问题 常规检查 1.目录设置是否合理,模块划分是否清晰,代码是否满足高内聚,低耦合 2.是否遵循设计原则和设计思想 3.是否过度设计 4.是否容易拓展 5.是否容易测试 6.是否易读,是否规范 业务检查 1.代码是否实现预期业务需求 2.逻辑是否正确,有没有处理异常 3.日志打印是否得当
关于单元测试 单元测试是一种非常重要的重构手段 他能帮助我们及时发现代码逻辑问题 判断代码是否写的设计的合理 帮助同事更快理解我们的代码 测试不友好的代码 1.拥有未决行为 2.滥用全局变量 3.滥用静态方法 4.复杂的继承关系 5.高度耦合代码
关于重构 重构:一种对软件内部结构的改善,目的是在不改变软件的可见行为的情况下,使其更容易理解,修改成本更低 也就是保证软件的正常运行下,通过设计原则,设计模式,规范,提高代码质量 为什么重构:开始做业务时,可能没有设计好,可能因为项目进度压力,写了烂代码,可能在业务的变更下,很多代码已经不在需要,
迪米特法则(LOD) 1.高内聚:把相似功能放在同一类中,方便集中修改,类似单一职责 2.低耦合:类与类之间尽量减少依赖,关系尽量简单 迪米特法则:不该有直接依赖的类之间,不要有依赖,有依赖关系的类之间,尽量只依赖必要的接口 Each unit should have only limited kn
DRP原则 DRP(Don't Reoeat Yourself):不要写重复的代码 举例几个违反DRP的例子 功能相同,代码不同 功能不同,执行子功能相同,比入你在登录时检测了用户名邮箱,同时你在操作时又检查了一遍邮箱 功能不同,部分代码相同不算违反DRP原则 Rule of Three 刚开始写代
KISS原则与YAGNI原则 KISS: Keep It Simple and Short 保持代码简单 注意事项 1.不要重复造轮子 2.不要过度优化 不写同事不懂的代码 YAGNI: You Ain't Gonna Need it 不写暂时不需要的代码,不要过度设计 比如:在gradle中引入暂
这就是我
文章
分类
访问量
建站天数
标签目录
最近评论