C++设计模式-观察者(3)
C++设计模式-观察者(3)设计模式:在解决某一类问题场景时,有既定的,优秀的代码框架可以直接使用,其优势如下:
代码更易于维护,代码的可读性,复用性,可移植性,健壮性会更好
当软件原有需求有变更或者增加新的需求时,合理的设计模式的应用,能够做到软件设计要求的开-闭原则,即对修改关闭,对扩展开放,使软件原有功能修改,新功能扩充非常灵活
合理的设计模式的选择,会使软件设计更加模块化,积极的做到软件设计遵循的根本原则高内聚,低耦合
软件设计开-闭原则:
开闭原则是软件设计中的一个重要原则,指的是软件实体(如类、模块、函数等)应该对扩展开放,对修改关闭。这意味着在不修改现有代码的基础上,通过扩展新功能来满足新的需求,从而提高软件的灵活性和可维护性
对扩展开放:允许在现有系统中添加新功能
对修改关闭:不需要修改现有的代码来添加新功能,避免引入新错误
通过遵循开闭原则,可以提高代码的可复用性和稳定性。常用的方法包括使用抽象类、接口以及多态等技术
行为型设计模式:
行为型设计模式是一类设计模式,关注对象之间的责任分配和相互协作(主要关注对象之间的通信)。它们主要用于定义类和对象之 ...
C++设计模式-适配器(6)
C++设计模式-适配器(6)设计模式:在解决某一类问题场景时,有既定的,优秀的代码框架可以直接使用,其优势如下:
代码更易于维护,代码的可读性,复用性,可移植性,健壮性会更好
当软件原有需求有变更或者增加新的需求时,合理的设计模式的应用,能够做到软件设计要求的开-闭原则,即对修改关闭,对扩展开放,使软件原有功能修改,新功能扩充非常灵活
合理的设计模式的选择,会使软件设计更加模块化,积极的做到软件设计遵循的根本原则高内聚,低耦合
软件设计开-闭原则:
开闭原则是软件设计中的一个重要原则,指的是软件实体(如类、模块、函数等)应该对扩展开放,对修改关闭。这意味着在不修改现有代码的基础上,通过扩展新功能来满足新的需求,从而提高软件的灵活性和可维护性
对扩展开放:允许在现有系统中添加新功能
对修改关闭:不需要修改现有的代码来添加新功能,避免引入新错误
通过遵循开闭原则,可以提高代码的可复用性和稳定性。常用的方法包括使用抽象类、接口以及多态等技术
结构型设计模式:
结构型设计模式关注类和对象的组合,旨在通过继承或接口来实现更大的结构(继承的概念被用来组合接口和定义组合对象获得新功 ...
C++ Primer Plus 学习要点(1)
一.C语言中%p与%x的区别“%p”中的p是pointer(指针)的缩写。%p是打印地址的, 而%x是以十六进制形式打印。%p是打印地址(指针地址)的,是十六进制的形式,但是会全部打完,即有多少位打印多少位。
32位编译器的指针变量为4个字节(32位),64位编译器的指针变量为8个字节(64位)。
所以,在32位编译器下,使用%p打印指针变量,则会显示32位的地址(16进制的);在64位编译器下,使用%p打印指针变量,则会显示64位的地址(16进制的),左边空缺的会补0。
%x:无符号十六进制整数(字母小写,不像上面指针地址那样补零)
%X:无符号十六进制整数(字母大写,不像上面指针那样补零)
%x、%X和%p的相同点都是16进制,不同点是%p按编译器位数长短(32位/64位)输出地址,不够的补零
二.C++中如何打印字符的地址12345678910111213141516171819#include <iostream>#include <string>using namespace std;int main(){ int ...
Tensorflow 入门教程(1)
Tensorflow 入门教程(1)视频教程链接:
【国家精品课程】北京大学人工智能实践-TensorFlow2.0
一、张量以及常用函数1.创建张量由tf.constant()函数进行创建
123456import tensorflow as tfa = tf.constant([[1,2]],dtype=tf.int32)print(a)print(a.dtype)print(a.shape)
运行结果:
将numpy格式转换为tensor格式
12a = numpy.range(0,5)b = tf.convert_to_tensor(a,dtype=tf.int64)
创建特殊张量
1234567891011121314151617# 创建全部为0的张量tf.zeros(维度) # 创建全部为1的张量tf.ones(维度) # 创建全为指定值的张量tf.fill(维度,指定值) # tf.fill([2,2],9) # 生成正太分布的随机数 默认均值为 0 标准差为1tf.random.normal(维度,mean=均值,stddev=标准差 ...