首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
设计模式与重构
JavaEdge在掘金
创建于2021-11-18
订阅专栏
设计模式与重构
等 25 人订阅
共19篇文章
创建于2021-11-18
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
代码重构和架构重构:你需要了解的区别
1 代码重构 定义 对软件代码做任何改动以增加可读性或者简化结构而不影响输出结果。 目的 增加可读性、增加可维护性、可扩展性 3 关键点 不影响输出 不修正错误 不增加新的功能性 代码重构时,发现有个
组合设计模式(Composite Pattern)
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第19天,点击查看活动详情 Composite Design Pattern,跟OOP的“组合关系(通过组合来组装两个类)是两码事
备忘录模式(Memento Pattern)
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情 1 简介 意图:在不破坏封装性前提下,捕获一个对象的内部状态,并在该对象之外保存该状态。就能在以后将对象
软件设计原则(02)-开闭原则(Open Close Principle,OCP)
1 定义 来个需求就改一次代码,顺其自然,理所当然?反正修改也易,再CV一份就行,也不费脑。但每人每次改点,日积月累,再来个新需求,后人改动量就很大了。每个人都很无辜,都只是简单修改一点点。但最终导致
一文带你看懂接口隔离原则
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情 接口隔离原则 1 概述 interface-segregation principles,ISP,指明客
Web服务的 REST 和 SOAP 风格
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情 当HTTP被作为服务通信的底层协议时,可称为Web服务。这可能有点小错误,因为Web服务不仅在Web上使用
可用性系统设计
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情 可用性系统设计
神秘的享元模式,到底是怎么实现的?
本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续! 🚀 魔都架构师 | 全网30W技术追随者 🔧 大厂分布式系统/数据中台实战专家 🏆 主导交易系统百万级流量调优 & 车联网平台架构
大厂工程师如何设计一个接口的粒度?
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情 门面模式,结构型模式,应用场景明确,主要在接口设计方面,以兼顾接口的易用性和通用性。 1 接口粒度 为保证
【Java设计模式系列】适配器模式及适用场景详解
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情 1 简介 一般客户端通过目标类的接口访问它所提供的服务。 有时,现有类可以满足客户端类的需要,但所提供接口
为你的项目引入特例!
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情。 动机 一种常见的重复代码:一个数据结构的使用者都在检查某个特殊的值,并且当该特殊值出现时所做的处理也都相
多态的复杂使用案例详解
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第10天,点击查看活动详情。 鸟类型体系是一个清晰的泛化体系:父类是抽象的“鸟”,子类是各种具体鸟。这是教科书中经常讨论的继承和多态,
最简单易懂的多态重构实践
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第9天,点击查看活动详情。 1 动机 复杂的条件逻辑是编程中最难理解的东西之一,因此我一直在寻求给条件逻辑添加结构。很多时候,我发现可
拥抱卫语句,别再用嵌套条件表达式了!
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第6天,点击查看活动详情。 动机 条件表达式通常有两种风格: 两个条件分支都属于正常行为 只有一个条件分支是正常行为,另一个分支是异常
使用合并条件表达式消除一大堆 if/else
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情。 1 动机 有时发现这样一串条件检查:检查条件各不相同,最终行为却一致。 这时就该使用“逻辑或”和“逻辑与”
祖传shi山代码重构实战(02)-将值对象改为引用对象
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情。 动机 一个数据结构中可能包含多个记录,而这些记录都关联到同一个逻辑数据结构。例如,我可能会读取一系列订单数
祖传shi山代码重构实战(01)-Extract Class提炼类
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。 某个类做了应该由两个类做的事。 建立一个新类,将相关的字段和函数从旧类移到新类。 动机 一个类应该是一个清
细数代码的坏味道,你写过几个?
大家接手的祖传代码都是屎山,那么何时重构、何时停止? 如何删除一个实例变量、如何产生一个继承体系,相信你也都会,因为本就简单,但要你解释何时做这些动作呢?你好像不那么轻松应答了呢。 编程不仅是一门艺术
如何消除代码屎山中的一大坨参数列表?
有经验的程序员应该都见过,一个方法坐拥几十上百个参数。 1 方法为何要有参数? 因为不同方法之间需要共享信息。 但方法间共享信息的方式除了参数列表,还有全局变量。但全局变量总能带来意外之喜,所以,取消