08 2020 档案

摘要:操作系统核心对象: 内核对象是由内核拥有的,而不是由进程拥有。 如果你的进程创建了一个内核对象的句柄,然后你的进程中止运行,那么,内核对象不一定会被销毁。 内核对象的存在时间可以比创建该内核对象的进程长很多。 内核需要知道多少个进程正在使用某个内核对象,所以内核对象有一个使用计数。使用计数是内核对象 阅读全文
posted @ 2020-08-25 23:39 吉尔加斯 阅读(578) 评论(0) 推荐(0)
摘要:介绍: 在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。 访问者模式是为了将数据结 阅读全文
posted @ 2020-08-24 01:19 吉尔加斯 阅读(153) 评论(0) 推荐(0)
摘要:介绍: 解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。比如正则表达式。 定义: 给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 结构图: 阅读全文
posted @ 2020-08-24 00:15 吉尔加斯 阅读(155) 评论(0) 推荐(0)
摘要:介绍: 享元模式使用共享对象,用来尽可能减少内存使用量以及分享数据给尽可能多的相似对象;它适合用于当大量对象只是重复因而导致无法令人接受的使用大量内存。通常对象中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。 定义: 享元模式(FlyWeight),运用共享 阅读全文
posted @ 2020-08-23 23:17 吉尔加斯 阅读(234) 评论(0) 推荐(0)
摘要:介绍: 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。 定义: 用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦 阅读全文
posted @ 2020-08-23 20:26 吉尔加斯 阅读(134) 评论(0) 推荐(0)
摘要:定义: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 是一种递归操作,要注意所有接收者都无法处理请求的情况。 结构图: 代码 //Handler类,定义一个处理请求的接口 class Handler{ 阅读全文
posted @ 2020-08-23 13:18 吉尔加斯 阅读(209) 评论(0) 推荐(0)
摘要:定义: 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 在软件系统中,【行为请求者】与【行为实现者】通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做等处理时,这种无法抵御变化的紧耦合的设计就不太合适。命令模式就 阅读全文
posted @ 2020-08-23 12:50 吉尔加斯 阅读(200) 评论(0) 推荐(0)
摘要:定义: 将抽象部分与它的实现部分分离,使他们都可以独立的变化。 这里的抽象和实现分离是指把实现的多种方式独立出来,让他们各自变化;实现系统可能有多角度分类,每一种分类都有可能变化,把这种多角度分离出来让它们独立变化,减少它们的耦合,这就是桥接模式。 比如手机这个抽象,它的实现既可以按照品牌分类,也可 阅读全文
posted @ 2020-08-16 22:53 吉尔加斯 阅读(150) 评论(0) 推荐(0)
摘要:定义: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单体模式分为懒汉模式和饿汉模式: 饿汉模式:在编译加载时就用静态初始化的方式实例化自己,优点是不需要编写线程安全代码,在多线程环境下它是安全的;缺点是提前占用系统资源。 懒汉模式:在第一次被引用时才实例化自己,优点是不必提前占用系统资源 阅读全文
posted @ 2020-08-16 15:17 吉尔加斯 阅读(187) 评论(0) 推荐(0)
摘要:定义: 将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 也称为 整体-部分(Part-Whole)模式,它的宗旨是通过将单个对象(叶子节点)和组合对象(树枝节点)用相同的接口进行表示,使得客户对单个对象和组合对象的使用具有一致性。 其中根节 阅读全文
posted @ 2020-08-16 09:32 吉尔加斯 阅读(204) 评论(0) 推荐(0)
摘要:定义: 备忘录模式(Memento Pattern)在一个对象之外保存这个对象的某些状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 结构图: 代码: //Originator类 class Originator { private: String state; public: void 阅读全文
posted @ 2020-08-13 23:39 吉尔加斯 阅读(105) 评论(0) 推荐(0)
摘要:定义: 将一个类的接口转换成客户端需要的另外一个接口;adapter模式使得原本由于接口不兼容而不能一起工作的类能一起工作。 简而言之就是中间件,将上游客户端调用的接口和下游服务端提供的接口实施对接。 结构图: 代码: //Target,客户端调用的接口 Class Target { void Re 阅读全文
posted @ 2020-08-11 23:16 吉尔加斯 阅读(114) 评论(0) 推荐(0)
摘要:定义: 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 工厂方法是生产一种产品,抽象工厂是生产一个产品族。 结构图: 代码: 果蔬工厂(分为北方果蔬和热带产果蔬) //两种抽象产品:水果、蔬菜 Class Fruit { } Class Veggie { } //四种具体产品 阅读全文
posted @ 2020-08-09 13:27 吉尔加斯 阅读(133) 评论(0) 推荐(0)
摘要:定义: 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听一个通知者对象。这个通知者对象在状态发生变化时,会通知所有观察者对象,使他们能够自己更新自己。 结构图: 代码: //通知者接口类 Class Subject { private: //观察者集合 IList<Observer> 阅读全文
posted @ 2020-08-02 15:23 吉尔加斯 阅读(202) 评论(0) 推荐(0)
摘要:设法站在更高的角度去看问题,才能更注重时效,做出明智的妥协和有见识的决策。 1、我的源码让猫吃了 承诺前分析风险;同意后尽力去做; 犯错时诚实的承认它,并设法给出解决方案,不要找蹩脚的接口; 当你找理由和借口时,想想你的辩解对对方来说是合理的还是愚蠢的。 2、软件的熵 不要容忍破窗户; 不要成为第一 阅读全文
posted @ 2020-08-01 00:00 吉尔加斯 阅读(146) 评论(0) 推荐(0)