![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
文章平均质量分 64
SigalHu
热爱编程。。。。。
展开
-
《CUDA并行程序设计-GPU编程指南》读书笔记--(1)线程网格、线程块以及线程
线程网格、线程块以及线程原创 2017-05-10 20:05:49 · 5089 阅读 · 1 评论 -
《设计模式之禅》读书笔记--(11)责任链模式
定义责任链模式通过将多个对象连成一条链,并沿着这条链传递请求,直到有对象处理它为止,这样可以避免请求的发送者与接受者之间的耦合关系。类图抽象处理者实现三个职责:一是定义一个请求的处理方法handleMessage,唯一对外开放;二是定义一个链的编排方法setNext,设置下一个处理者;三是定义具体请求者必须实现的两个方法:定义自己能够处理的级别getHandlerLevel和具...原创 2018-03-21 13:45:18 · 213 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(25)创建类模式比较
创建类模式包括工厂方法模式、建造者模式、抽象工厂模式、单例模式和原型模式,它们都能够提供对象的创建和管理职责。其中,单例模式是要保持在内存中只有一个对象,原型模式是要求通过复制的方式产生一个新的对象,这两个不容易混淆,剩下的工厂方法模式、抽象工厂模式和建造者模式有较多的相似性。工厂方法模式与建造者模式工厂方法模式注重的是整体对象的创建方法,生产出的产品应该具有相似的功能和架构,而不需要考虑...原创 2018-03-25 18:23:56 · 179 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(12)装饰模式
定义装饰模式可以动态地给一个对象添加一些额外的职责。类图Component 抽象构件Component是一个接口或者是抽象类,就是定义我们最核心的对象,也就是最原始的对象。ConcreteComponent 具体构件ConcreteComponent是最核心、最原始、最基本的接口或抽象类的实现。Decorator 装饰角色一般是一个抽象类,实现接口或者抽象方...原创 2018-03-26 13:51:22 · 185 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(13)策略模式
定义定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。类图Context 封装角色也叫上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。Strategy 抽象策略角色策略、算法家族的抽象,通常为接口,定义每个策略或算法必须具有的方法和属性。ConcreteStrategy 具体策略角色实现抽象策略中的操作,包含...原创 2018-03-27 13:28:02 · 211 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(14)适配器模式
定义适配器模式将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作,通常用来解决接口不相容的问题。类图Target 目标角色该角色定义把其他类转换为何种接口,也就是我们期望接口。Adaptee 源角色它是已经存在的、运行良好的类或对象,经过适配器角色的包装,从而转换成目标角色。Adapter 适配器角色适...原创 2018-05-04 21:54:29 · 197 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(15)迭代器模式
定义迭代器模式提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象的内部细节。类图Iterator 抽象迭代器抽象迭代器负责定义访问和遍历元素的接口,基本上是有固定的3个方法:first()获得第一个元素,next()访问下一个元素,isDone()是否已经访问到底部。ConcreteIterator 具体迭代器具体迭代器实现迭代器接口,完成容器元素的遍历。...原创 2018-06-03 14:13:04 · 178 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(16)组合模式
定义组合模式将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。类图Component 抽象构件角色定义参加组合对象的共有方法与属性,可以定义一些默认的行为或属性。Leaf 叶子构件叶子对象其下没有分支,是遍历的最小单位。Composite 树枝构件树枝对象的作用是组合树枝节点和叶子节点形成一个树形结构。实现...原创 2018-06-03 14:54:55 · 177 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(17)观察者模式
定义观察者模式定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。类图Subject 被观察者被观察者必须能够动态地增加、取消观察者,一般是抽象类或实现类,仅仅完成作为被观察者必须实现的职责:管理观察者并通知观察者。Observer 观察者观察者接收到消息后,即进行update操作,对接收到的信息进行处理。Co...原创 2018-06-03 16:05:14 · 313 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(18)门面模式
定义门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,门面模式提供一个高层次的接口,使得子系统更易于使用。类图Facade 门面角色客户端可以调用这个角色的方法,此角色知晓子系统的所有功能和责任,一般情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去,也就是说该角色没有实际的业务逻辑,只是一个委托类。Subsystem 子系统角色可以同...原创 2018-06-03 16:32:42 · 169 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(19)备忘录模式
定义备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。类图Originator 发起人角色记录当前时刻的状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据。Memento 备忘录角色负责存储Originator发起人对象的内部状态,在需要的时候提供发起人需要的内部状态。Ca...原创 2018-06-03 17:49:33 · 198 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(26)结构类模式比较
结构类模式包括适配器模式、桥梁模式、组合模式、装饰模式、门面模式、享元模式和代理模式。它们都是通过组合类或对象产生更大结构以适应更高层次的逻辑需求。代理模式与装饰模式装饰模式就是代理模式的一个特殊应用,两者的共同点是都具有相同的接口,不同点则是代理模式着重对代理过程的控制,而装饰模式则是对类的功能进行加强或减弱,它着重类的功能变化。代理模式是把当前的行为或功能委托给其他对象执行,代理类...原创 2018-06-03 18:02:18 · 218 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(27)行为类模式比较
行为类模式包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。策略模式与命令模式策略模式的意图是封装算法,它认为“算法”已经是一个完整的、不可拆分的原子业务,即其意图是让这些算法独立,并且可以相互替换,让行为的变化独立于拥有行为的客户;而命令模式则是对动作的解耦,把一个动作的执行分为执行对象、执行行为,让两者相...原创 2018-06-03 18:09:18 · 262 阅读 · 0 评论 -
《Maven实战》读书笔记--(1)使用intellij idea搭建并配置maven多模块项目
本文使用intellij idea搭建Maven3多模块项目,并进行配置相关配置,以实现项目的构建打包。项目结构multi-module-project是我们的项目名称,其中包含多个模块:mmp-dal模块:数据访问层,提供对原始数据(主要指数据库)的操作mmp-integration模块:提供对第三方服务的调用mmp-commons模块:提供工具类、常量定义等公共服务...原创 2018-06-07 18:13:48 · 1197 阅读 · 2 评论 -
《C#程序设计经典300例》读书笔记
语法基础结构体主要用于创建小型对象,因为在C#中值类型是存储在线程堆栈中的,而线程堆栈的默认大小是1MB。交错数组byte[][] months = new byte[12][];if (month % 2 == 0) { months[month] = new byte[31];} else { months[month] = new byte[30];}...原创 2018-06-16 23:07:40 · 3573 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(10)命令模式
定义命令模式将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。类图Receiver 接收者角色该角色就是干活的角色,命令传递到这里是应该被执行的。Command 命令角色需要执行的所有命令都在这里声明。Invoker 调用者角色接收到命令,并执行命令。实现通用Receiver类:...原创 2018-03-20 12:37:09 · 184 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(6)建造者模式
定义建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类图Product 产品类通常实现了模板方法模式,也就是有模板方法和基本方法。Builder 抽象建造者规范产品的组建,一般是由子类实现。ConcreteBuilder 具体建造者实现抽象类定义的所有方法,并返回一个组建好的对象。Director 导演类负责安排已...原创 2018-03-14 11:24:32 · 335 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(5)模板方法模式
定义模板方法模式要求定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。通常,算法框架可使用抽象类定义,其中,可以有一个或几个实现对基本方法进行调度的具体方法,也就是一个框架,叫做模板方法;而由子类实现,并被模板方法调用的方法叫做基本方法。类图实现抽象模板类:package com.sigalhu.te...原创 2018-03-13 20:07:10 · 177 阅读 · 0 评论 -
《CUDA并行程序设计-GPU编程指南》读书笔记--(2)CUDA内存处理
CUDA内存处理高速缓存不仅要思考如何高效地访问全局内存,也要时刻想办法减少对全局内存的访问次数,尤其在数据会被重复利用的时候。CPU与GPU架构的一个主要区别就是CPU与GPU映射寄存器的方式。CPU通过使用寄存器重命名和栈来执行多线程。为了运行一个新任务,CPU需要进行上下文切换,将当前所有寄存器的状态保存到栈(系统内存)上,然后从栈中恢复当前需要执行的新线程上次的执行状态。这些操作通常需要花费原创 2017-05-13 19:53:50 · 2859 阅读 · 0 评论 -
《C陷阱与缺陷》读书笔记
如果一个整型常数的第一个字符是数字0,那么该常量将被视作八进制数。如0195相当于十进制数141C语言中,else始终与同一对括号内最近的未匹配的if结合。Switch语句中的case语句若在结尾处无break,程序将会继续执行下一条case语句非数组的指针#include <stdlib.h>char *r,*s = "hhh",*t = "sigalhu";r = (char*)malloc原创 2017-06-03 20:35:43 · 1098 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(7)代理模式
定义代理模式为其他对象提供一种代理以控制对这个对象的访问。类图Subject 抽象主题角色Subject抽象主题角色可以是抽象类也可以是接口,是一个最普通的业务类型定义,无特殊要求。RealSubject 具体主题角色RealSubject具体主题角色是业务逻辑的具体执行者。Proxy 代理主题角色Proxy代理主题角色负责对真实角色的应用,把所有抽象主题类...原创 2018-03-14 17:31:05 · 151 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(8)原型模式
定义原型模式是指用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,简而言之,就是不通过new关键字来产生一个对象,而是通过对象复制来实现。类图实现实现一个接口,然后重写clone方法,就完成了原型模式:package com.sigalhu.prototypepattern;public class PrototypeClass implement...原创 2018-03-17 10:33:22 · 228 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(22)解释器模式
定义给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。类图AbstractExpression 抽象解释器抽象解释器是生成语法集合的关键,每个语法集合完成指定语法解析任务,它是通过递归调用的方式,最终由最小的语法单元进行解析完成。具体的解释任务由各个实现类完成,具体的解释器分别由TerminalExpression和Nonterm...原创 2018-03-17 21:30:48 · 272 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(23)享元模式
定义使用共享对象可有效地支持大量的细粒度的对象,我们可以将这些对象的信息分为两个部分:内部状态与外部状态。内部状态是对象可共享出来的信息,存储在享元对象内部并且不会随环境改变而改变,它可以作为一个对象的动态附加信息,不必直接储存在具体某个对象中,属于可以共享的部分;外部状态是对象得以依赖的一个标记,是随环境改变而改变的、不可以共享的状态,它是一批对象的统一标识,是唯一的一个索引值。...原创 2018-03-17 21:31:37 · 185 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(24)桥梁模式
定义将抽象和实现解耦,使得两者可以独立地变化。类图Abstraction 抽象化角色定义出该角色的行为,同时保存为一个对实现化角色的引用,一般是抽象类。Implementor 实现化角色定义角色必需的行为和属性,一般是接口或抽象类。RefinedAbstraction 修正抽象化角色引用实现化角色对抽象化角色进行修正。ConcreteImplemento...原创 2018-03-18 15:18:15 · 211 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(1)设计原则
单一职责原则单一职责原则要求在设计类、接口或方法时要保证功能的单一。例如不要将描述用户信息与行为的方法放到一个类或者接口中,而应该将按职责进行划分。其中,将用户的信息抽取为BO(Business Object,业务对象);将用户的行为抽取为Biz(Business Logic,业务逻辑)。但在这里最好还将BO与Biz抽象为接口,然后在用一个类去实现这些单一职责的接口,而不应该针对每个接口都设计...原创 2018-03-12 16:13:13 · 176 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(20)访问者模式
定义封装一些作用于某种数据结果中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。类图Visitor 抽象访问者抽象类或者接口,声明访问者可以访问哪些元素,具体到程序中就是visit方法的参数定义哪些对象是可以被访问的。ConcreteVisitor 具体访问者它影响访问者访问到一个类后该怎么干,要做什么事。Element 抽象元素...原创 2018-03-12 21:38:19 · 191 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(21)状态模式
定义当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。类图State 抽象状态角色接口或抽象类,负责对象状态定义,并且封装环境角色以实现状态切换。ConcreteState 具体状态角色每一个具体状态必须完成两个职责:本状态的行为管理以及趋向状态处理,通俗地说,就是本状态下要做的事情,以及本状态如何过渡到其他状态。Context 环境角色定...原创 2018-03-12 22:48:39 · 173 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(9)中介者模式
定义中介者模式用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。类图Mediator 抽象中介者角色抽象中介者角色定义统一的接口,用于各同事角色之间的通信。ConcreteMediator 具体中介者角色具体中介者角色通过协调各同事角色实现协作行为,因此它必须依赖于各个同事角色。Colle...原创 2018-03-19 11:12:55 · 195 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(2)单例模式
定义单例模式要求一个类只能生成一个对象。开发者可以通过定义一个私有访问权限的构造函数,来避免被其他类new出一个对象,其他类对该类的访问可以通过getInstance获得同一个对象。类图实现单例模式根据申请对象的时机可分为饿汉式单例与懒汉式单例,其中,饿汉式单例在程序启动就申请对象;懒汉式单例在其他类获取单例时申请对象。需要注意的是,懒汉式单例还需要考虑多线程同时调用get...原创 2018-03-13 11:28:23 · 190 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(3)工厂方法模式
定义工厂方法模式一般定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。类图在工厂方法模式中,抽象产品类Product负责定义产品的共性,实现对事物最抽象的定义;Creator为抽象创建类,也就是抽象工厂,具体如何创建产品类是由具体的实现工厂ConcreteCreator完成的。实现抽象产品类:package com.si...原创 2018-03-13 15:54:41 · 179 阅读 · 0 评论 -
《设计模式之禅》读书笔记--(4)抽象工厂模式
定义抽象工厂模式要求为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。类图实现抽象产品类:package com.sigalhu.abstractfactory;public abstract class AbstractProductA { //每个产品共有的方法 public void shareMethod(){ ...原创 2018-03-13 16:51:13 · 183 阅读 · 0 评论 -
《C++面向对象程序设计-基于Visual C++ 2010》读书笔记
数据类型与基本运算字符串常量按字符书写顺序依次存储在内存中,并在最后存放空字符’\0’表示字符串常量的结束。ASCII字符在内存中占1个字节,而中文字符占2个字节有名常量是指用关键字const修饰的变量。由于该变量只能读取,而不能被修改,所以 也称为常变量。有名常量必须在定义时进行初始化,之后不再允许赋值。例如:const double PI=3.1415926;const ...原创 2018-06-17 17:22:23 · 1963 阅读 · 0 评论