原则

STL(8) 迭代器设计原则和traits

目录iterator的原则以rotate为例子五种类型traits Traits:特征 Traits就是说你丢给他一个东西,希望得到某些特征 iterator的原则 是算法和容器的桥梁 用iterator告诉算法操作范围 在操作的过程中,算法想知道iterator的性质,从中选择最佳化的动作 以ro ......
原则 traits STL

其它原则

# 合成/聚合复用原则 > (Composite/Aggregate ReusePrinciple ,CARP): 要尽量使用对象组合,而不是继承关系达到软件复用的目的 # 定义 经常又叫做合成复用原则(Composite ReusePrinciple或CRP),尽量使用对象组合,而不是继承来达到复 ......
原则

D依赖倒置原则DIP

> Dependency-Inversion Principle 要依赖抽象,而不要依赖具体的实现, 具体而言就是高层模块不依赖于底层模块,二者共同依赖于抽象。抽象不依赖于具体,具体依赖于抽象。 # 定义 高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。简单 ......
原则 DIP

L里氏替换原则LSP

> Liskov Substitution Principle ,LSP: 任何基类可以出现的地方,子类也可以出现;这一思想表现为对继承机制的约束规范,只有子类能够替换其基类时,才能够保证系统在运行期内识别子类,这是保证继承复用的基础。 # 定义 第一种定义方式相对严格: 如果对每一个类型为S的对象 ......
里氏 原则 LSP

O开放封闭原则OCP

> Open - ClosedPrinciple ,OCP, 对扩展开放,对修改关闭(设计模式的核心原则) ## 定义 > 一个软件实体(如类、模块和函数)应该对扩展开放,对修改关闭. 意思是,在一个系统或者模块中,对于扩展是开放的,对于修改是关闭的,一个 好的系统是在不修改源代码的情况下,可以扩展 ......
原则 OCP

软件开发中的原则 - SOLID

在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则,和具体阐述意义。 # 开发原则SOILD > 面向对象的基本原则(solid)是五个,但是在经常被提到的除了这五个之外还有 迪米特法则和合成复用原 ......
软件开发 原则 SOLID 软件

软件开发原则

## 软件开发原则 | 原则 | 介绍 | | | | | 单一职责原则 | 一个类或模块应该只负责一项任务或功能 | | 开闭原则 | 软件实体(类、模块、函数等)应该对扩展开放,对修改关闭 | | 里氏替换原则 | 子类应该能够替换其父类并且不会破坏程序的正确性 | | 接口隔离原则 | 客户端 ......
软件开发 原则 软件

六大程序设计原则 + 合成复用原则

六大程序设计原则 + 合成复用原则 六大程序设计原则 + 合成复用原则程序设计领域的设计模式的六大设计原则 + 合成复用原则(Composite Reuse Principle) ,都是一些很泛的思想(它们既可以指这个,也可以代指那个),无法生搬硬套,无法做到很具体的指导。我的建议是,有空多看几遍、 ......
原则 程序设计 程序

RTL设计的两点原则以及如何具体执行

## RTL设计的两点原则 1. 大道至简 2. 考虑物理后端的实现 ## 如何遵循原则去执行 ### 大道至简 1. 大道至简的意思是我们设计的电路,要保证功能正确性的同时,电路要尽可能简洁。 2. 大道至简的好处是,更少的资源,更低的功耗,更容易实现的高时钟频率。 3. 这就需要我们对各种微架构 ......
原则 RTL

设计模式学习1 设计原则

# 设计原则 ## 1.开闭原则 **对扩展开放,修改关闭**。在程序需要扩展的时候,不能去修改原有代码,实现一个热插拔的效果。为了使程序的扩展性好,易于维护和升级 为了达到这样的效果,我们需要使用接口和抽象类 ## 2.里氏代换原则 **任何基类可以出现的地方,子类一定可以出现。**也就是子类继承 ......
设计模式 原则 模式

合成复用原则及设计模式概述

#### 合成复用原则 ##### 基本介绍 尽量使用合成或聚合方式,而不是使用继承。 ##### uml类图 ![](https://img2023.cnblogs.com/blog/2883613/202309/2883613-20230901214027810-569491626.png) 此 ......
设计模式 原则 模式

[读书笔记]架构设计原则

架构设计面向的是不确定性,需要面对多种可能性时进行选择。 > 选择的前提是知识和经验,知识是指有哪些技术、可用组件、实现思路等,这个决定了可选的范围。经验是对当前的业务、情形进行分析,能识别对当前的工作最有效的要素,能从选择空间里做出选择。 > > 多学习:扩大可选择的空间和范围 > 多实践、思考: ......
架构 原则 笔记

Single Responsibility Principle,SRP-单一职责原则

C#中的单一职责原则(Single Responsibility Principle,SRP)要求一个类应该只负责单一的职责。这意味着一个类应该只有一个引起它变化的原因。 遵循单一职责原则的好处包括: 提高代码的可维护性:一个类只负责一个职责,当需求变化时,只需要修改与该职责相关的代码,降低了变更对 ......

六大程序设计原则 + 合成复用原则

程序设计领域的`设计模式六大原则` + `合成复用原则`(Composite Reuse Principle) ,都是一些很**泛**的思想(既可以指这个,也可以代指那个),无法生搬硬套,无法做到很具体的指导。我的建议是,有空多看几遍,多思考看看怎么能运用上在实际项目中,在未来时保佑自己在设计程序时 ......
原则 程序设计 程序

开闭原则

#### 开闭原则 ##### 基本介绍 - 1.开闭原则(Open Close Principle)是编程中最基础,也最重要的原则。 - 2.一个软件实体如类,模块,和函数应该对扩展(增加)开放,对修改关闭。用抽象扩展结构,用实现扩展细节。 - 3.当软件需求变化时,尽量通过扩展软件实体的方式来实 ......
原则

设计原则

一、单一职责原则(SRP)二、开闭原则(OCP)对扩展开放,对修改关闭三、里氏替换原则(LSP)父类的属性和方法必须完全可以被继承,不会出现父类方法被子类使用出现不符合的情况四、依赖倒置原则(DIP)通过 抽象接口 来定义模块之间的依赖关系五、接口隔离原则(ISP) 拆接口,避免继承类 重复实现 接 ......
原则

里氏替换原则

#### 里氏替换原则 **OOP(Object Oriented Programming) 面向对象编程** ##### OO中的继承性的思考 - 1.继承包含这样一层含义,父类中凡是已经写好的方法,实际上就是设定规范。虽然不强制要求所有子类必须遵守规范(不重写方法),但是如果子类对这些方法,任意 ......
里氏 原则

依赖倒转原则详解

#### 依赖倒转原则 ##### 基本介绍 依赖倒转原则(Dependence Inversion Principle): - 1.高层模块,不要依赖底层模块,二者都应该依赖其抽象。 - 2.抽象不应该依赖细节,细节应该依赖抽象。 - 3.依赖倒转的核心思想是面向接口编程。 - 4.依赖倒转原则基 ......
原则

接口隔离原则

#### 接口隔离原则 ##### 介绍 客户端不要依赖不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。 ##### 案例引入 A类,通过接口1依赖B类,C类通过依赖接口1依赖D类,A类只会用到1-3方法,C类只会使用到1,4,5方法。 ##### uml类图 ![](https:// ......
接口 原则

面向对象设计原则

前言 在面向对象的软件设计中,只有尽量降低各个模块之间的耦合度,才能提高代码的复用率,系统的可维护性、可扩展性才能提高。面向对象的软件设计中,有23种经典的设计模式,是一套前人代码设计经验的总结,如果把设计模式比作武功招式,那么设计原则就好比是内功心法。常用的设计原则有七个,本文将具体介绍单一职责原 ......
对象 原则

SQL索引建立原则和使用

今天遇到一个sql,where 中增加了一个条件,用时突然变成了4秒,系统里有两次使用此语句,点一下要等一会。 所以研究下索引。 原文链接:https://blog.csdn.net/qq_32911691/article/details/117321757 创建索引:create table [表 ......
索引 原则 SQL

数据库基础06-Mysql索引使用原则及优化

## 索引使用的原则 ### 列的离散度高的列建索引,离散度低的列尽量避免建索引 #### 列的离散度 - 列的离散度的计算公式 ``` select count(distinct(column_name)) / count(column_name) as rate from tb ``` - 查询 ......
索引 原则 数据库 基础 数据

设计模式和七大原则概述及单一职责原则详解

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

软件的设计原则

> 任何傻瓜都可以写出计算机能懂的代码,但好的程序员可以写出人类能懂的代码—–Martin Fowler 如果你是新手,你可能会问,为什么代码需要设计原则? 我想说的是肯定不是为了故作高深,存在即是合理。 如果写了一个简单的程序,你可能不需要设计原则。 如果你写了一个复杂的,但是之后再也不会改,那么 ......
原则 软件

【设计模式之禅】里氏替换原则

什么叫里氏替换原则? "这里需要如下的替换性质:若对类型S的每一个对象O1,都存在一个类型T的对象O2,使得在所有针对T编写的程序P中,用O1替换O2后,程序P的行为功能不变,则S是T的子类型。"这是最专业最权威的定义,但是我当时就是看不懂这句话,看完这个章节也没有完全理解,只能通俗易懂的来描述:让 ......
里氏 设计模式 原则 模式

C/C++基础知识点——设计原则及设计模式

## 如何实现模块间高内聚、低耦合? 1. 封装与抽象; 2. 添加中间层; 3. 模块化; 4. 设计思想与原则 1. 单一职责; 2. 接口隔离原则; 3. 依赖倒置; 4. 迪米特原则; 5. 多用组合少用继承; 5. 设计模式:观察者模式 ## 设计原则及设计模式 ### 六大设计原则: 单 ......
设计模式 知识点 原则 模式 基础

15项设计原则

N + 1设计。 回滚设计。 禁用设计。 监控设计。 设计多活数据中心。 使用成熟的技术。 异步设计。 无状态系统。 水平扩展而非垂直升级。 设计时至少要有两步前瞻性。 非核心则购买。 使用商品化硬件。 小构建、小发布和快试错。 隔离故障。 自动化。 ......
原则

设计模式的六大原则

开放封闭原则(Open Close Principle) 对外扩展是开放的,对内修改是封闭的,目的是保证程序的可扩展性以及可维护性 里氏代换原则(Liskov Substitution Principle) 子类可以扩展父类的功能,但不能改变父类原有的功能。 规定了子类不得重写父类的普通方法,只能重 ......
设计模式 原则 模式

设计模式 solid原则

SOLID原则是一组面向对象设计和编程的原则,旨在提供可维护、可扩展和可重用的代码。下面是SOLID原则的简要介绍: 单一职责原则(Single Responsibility Principle,SRP):一个类应该只有一个引起变化的原因。换句话说,一个类应该只负责一个单一的功能或职责。 开放封闭原 ......
设计模式 原则 模式 solid

设计模式原则之:迪米特法则

不符合迪米特法则的案例 import java.util.ArrayList; import java.util.List; /** * @description: 不符合迪米特法则的案例 * @author: abel.he * @date: 2023-08-06 **/ public class ......
设计模式 法则 原则 模式