原则性

设计原则总结

## 目录 - 封装变化 - 针对接口编程,不针对实现编程 - 多用组合(has-a),少用继承(is-a) - 为交互对象之间的松耦合设计而努力 - 最少知识原则 LKP / 迪米特法则 Law of Demeter - 好莱坞原则 - SOLID 原则 - 单一职责原则 SRP - 开放关闭原则 ......
原则

设计模式原则之:开闭原则原则

类似于做一个多支付的业务,提供一个service来进行支付、查询操作,具体的实现类如:WeChat、AliPay等实现service服务,来进行服务的调用,如果后续增加Paypal支付,则由提供方实现service即可使用方无需动代码 引发开闭原则的实例 /** * @description: 引发 ......
原则 设计模式 模式

设计模式原则之:里氏替换原则

示例已发推论 /** * @description: 示例引发里氏替换原则的实现 * @author: abel.he * @date: 2023-08-03 **/ public class Test1 { public static void main(String[] args) { Pers ......
原则 里氏 设计模式 模式

设计模式原则之:依赖倒转原则

基本介绍: 高层模块不应该依赖与底层模块,二者都应该依赖其抽象 抽象不应该依赖细节,细节应该依赖抽象 依赖倒转(倒置)的中心思想是面向接口编程 依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多,在Java中,抽象指的是接 ......
原则 设计模式 模式

设计模式原则之:接口隔离原则

客户端不应该依赖它不需要的接口,即一个接口对另一个类的依赖应该建立在最小的接口上 看图说话: /** * @description: 接口隔离原则 * @author: abel.he * @date: 2023-08-01 **/ public class InterfaceSegregation ......
原则 设计模式 接口 模式

设计模式原则之:单一职责模式

对类来说的,即一个类应该只负责一项职责。如类A负责两个不同的职责,职责1,职责2。当职责1需求变更而改变A时,可能造成职责2智行错误,所以要将类A的粒度分解为A1,A2 错误的应用实例 package org.example.demo0; /** * @description: 单一职责原则 * @ ......
模式 设计模式 职责 原则

设计模式中的七大设计原则

设计模式的目的 编写软件过程中,程序员面领着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序,具有更好的 代码重用性(即:相同功能的代码,不用多次编写) 可读性(即:编码规范性,便于其他程序员的阅读和理解) 可扩展性(即:需要增加新的功能时,非常的方便, ......
设计模式 七大 原则 模式

【设计原则】图解何为依赖倒置

**依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构时,高层模块不应该依赖低层模块,二者都应该依赖其抽象。** 要理解何为倒置,那就先得明确什么是“正向”,可以看到下图代码是自上而下地调用,即高层模块依赖底层模块,这就是正向依赖。: ![image ......
原则

面向对象编程的 SOLID 原则 - 里氏替换原则

里氏替换原则 里氏替换原则描述的是子类应该能替换为它的基类。 意思是,给定 class B 是 class A 的子类,在预期传入 class A 的对象的任何方法传入 class B 的对象,方法都不应该有异常。 这是一个预期的行为,因为继承假定子类继承了父类的一切。子类可以扩展行为但不会收窄。 ......
原则 里氏 对象 SOLID

面向对象编程的 SOLID 原则 - 接口隔离原则

接口隔离原则 隔离意味着保持独立,接口隔离原则是关于接口的独立。 该原则描述了很多客户端特定的接口优于一个多用途接口。客户端不应该强制实现他们不需要的函数。 这是一个简单的原则,很好理解和实践,直接看例子。 public interface ParkingLot { void parkCar(); ......
原则 接口 对象 SOLID

面向对象编程的 SOLID 原则 - 依赖倒置原则

依赖倒置原则 依赖倒置原则描述的是我们的 class 应该依赖接口和抽象类而不是具体的类和函数。 在这篇文章(2000)里,Bob 大叔如下总结该原则: “如果 OCP 声明了 OO 体系结构的目标,那么 DIP 则声明了主要机制”。 这两个原则的确息息相关,我们在讨论开闭原则之前也要用到这一模式。 ......
原则 对象 SOLID

面向对象编程的 SOLID 原则 - 开闭原则

开闭原则 开闭原则要求“class 应该对扩展开放对修改关闭”。 修改意味着修改存在 class 的代码,扩展意味着添加新的功能。 这个原则想要表达的是:我们应该能在不动 class 已经存在代码的前提下添加新的功能。这是因为当我们修改存在的代码时,我们就面临着创建潜在 bug 的风险。因此,如果可 ......
原则 对象 SOLID

面向对象编程的 SOLID 原则

SOLID 原则是面向对象 class 设计的五条原则。他们是设计 class 结构时应该遵守的准则和最佳实践。 通常,这五个原则可以帮助我们了解设计模式和软件架构。这是每个开发人员都应该了解的主题。 这篇文章介绍了在项目中使用 SOLID 原则的细节。 首先我们先看一下 SOLID 原则的历史。然 ......
对象 原则 SOLID

第七章:部署流水线原则与工具设计

部署流水线是对软件交付过程的一种可视化呈现方式,展现了从代码提交、构建、部署、测试到发布的整个过程,为团队提供状态可视化和及时反馈。部署流水线的设计与使用: 流水线的设计原则: 一次构建,多次使用 与业务逻辑松耦合 并行化原则 快速反馈优先:让那些提供快速反馈的任务尽早执行 重要反馈优先:例如:软件 ......
流水线 流水 原则 工具

架构设计中的正交原则

正交设计,是普遍的设计原则,与粒度无关,与编程范式无关,更与具体的实现语言无关。 一、正交设计原则“正交性”是几何学中的术语,互为直角的直角坐标系就具有正交性;在计算技术中表示不依赖性或解耦性。 一种相互正交的模块化思想,模块内有更高的内聚,与模块外有更低的耦合,只有一个不变的交叉点,这个交叉点就是 ......
正交 架构 原则

数据库设计的原则

一、数据库设计的原则 1、表设计原则 (1)规范化与反规范化 规范化的优点是减少了数据冗余,节约了存储空间,相应逻辑和物理的I/O次数减少,同时加快了增、删、改的速度。但是一个完全规范化的设计并不总能生成最优的性能,因为对数据库查询通常需要更多的连接操作,从而影响到查询的速度,而且范式越高性能就会越 ......
原则 数据库 数据

实战总结|复杂系统设计原则与案例

本文主要讲述了应对复杂性的一些原则和经验,通过实际案例解构设计思想,个人认为好的设计是体现在「职责分离」、「抽象分层」和「变化扩展」上,在类的结构设计上尤其要花心思去想,如「变与不变分离」、「配置域与执行域分离」、「查询与命令分离」。 ......
复杂系统 实战 原则 案例 系统

最佳实践系列:Python中的SOLID原则

# ***SOLID原则:*** S:单一职责原则(Single Responsibility Principle, SRP)。 O:开/闭原则(Open/Closed Principle, OCP)。 L:里氏替换原则(Liskov's Substitution Principle, LSP)。 ......
原则 Python SOLID

浅谈软件设计原则

通用原则 OCP(开闭原则) 架构设计的主导原则。设计良好的软件应该易于扩展,同时抗拒修改。这是我们进行架构设计的主导原则,其它的原则都为这条原则服务。 USB接口满足OCP原则,各个厂商可以扩展接口实现,但是不能修改接口定义 正交性设计 “正交性”是从几何学中借来的术语。如果两条直线相交成直角,它 ......
原则 软件

索引的建立原则?什么是索引?如何建立一个好的索引?

索引的本质其实就是一种排好序的数据结构。 1.必须遵循唯一的索引原则,将其使用的作为索引的字段必须是唯一的,这样涉及的原则跟好处就是,唯一的索引会避免数据库去查询的时候会产生两样性,从而导致索引的查找的速率大大降低。 2.索引的设计要根据where关键字跟order by关键字还有 gruop by ......
索引 原则

基于 Orbit 的云原生应用交付基础原则与良好实践

![img](https://mmbiz.qpic.cn/sz_mmbiz_gif/jxHgxicVs5Y2N4DyQJT8Y6J3gx111okphVZ9XADdozcNXgQZtDib4dKKUn2FMdugbLAblStic3x2cc1nKia8qEjF9g/640?wx_fmt=gif) > ......
原则 基础 Orbit

软件设计七项原则

#### 一、软件设计七项原则 1. 总结归纳 |设计原则|归纳总结| | | | |开闭原则|对扩展开放,对修改关闭|降低维护带来的新风险| |里氏替换原则|不要破坏继承体系,子类重写方法功能发生改变,不应该影响父类方法的含义|防止继承泛滥| |依赖倒置原则|高层不应该依赖低层,要面向接口编程|更 ......
原则 软件

打造引人注目按钮:七项有效原则解析

按钮是交互设计中的基本元素。他们在用户和系统之间扮演重要角色。在本文中,我们将一起思考创建有效按钮所需了解的七个基本原则。 ⬇⬇⬇点击获取更多设计资源 https://js.design/community?category=design&source=bjh&plan=bbqbjh768 让按钮看 ......
引人注目 按钮 原则

CAP原则介绍

## 一、背景: - 1985 年,后来证明了 CAP 理论的 Lynch 教授此时给当时的 IT 界来了一记惊雷:她通过不可辩驳的证明告诉业界的工程师们,如果在一个不稳定(消息要么乱序要么丢了)的网络环境里(分布式异步模型),想始终保持数据一致是不可能的。这是个什么概念呢?就是她打破了那些既想提供 ......
原则 CAP

工作的原则(2)

1.培养自己的减言能力。少说话,多思考。切记不要抢话。2.任何场合不要随意说自己的想法,学会提问,深思熟虑!!! 会上不要说具体的方法,只说大方向,提问,思考问题,听别人怎么想,怎么说。3.关于邮件等联络,细看,细想之后再回复,能用文字就不用口头。4.说话时刻保持友好的语气,越是严厉的话题,越要和颜 ......
原则

最左前缀匹配原则

最左前缀匹配原则:在MySQL建立联合索引时会遵守最左前缀匹配原则,即最左优先,在检索数据时从联合索引的最左边开始匹配。 要想理解联合索引的最左匹配原则,先来理解下索引的底层原理。索引的底层是一颗B+树,那么联合索引的底层也就是一颗B+树,只不过联合索引的B+树节点中存储的是键值。由于构建一棵B+树 ......
前缀 原则

CAP原则

CAP原则又称CAP定理,指的是一个分布式系统中的Consitency(一致性)、Availability(可用性)、Partition tolerance(分区容错性)三个特性,下面分别介绍. 1、Consitency(一致性) 指的是多个微服务节点的数据一致性,微服务架构中,单一服务节点可能存在 ......
原则 CAP

设计原则

### 面向对象设计的 SOLID 五大原则 【S】单一职责原则(Single Responsibility Principle, SRP) 【O】开闭原则(Open Closed Principle,OCP) 【L】里氏代换原则(Liskov Substitution Principle,LSP) ......
原则