11 2018 档案
摘要:设计模式 创建型模式 模板方法 定义一个操作中的算法框架,将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义一个算法的步骤。 protected 对于本包及其子类可见。 类图 代码 代码如下 最后场景类完成调用。 扩展 然后扩展HummerH1Model 最后定义场景 总结 上方使用
阅读全文
摘要:设计模式 创建型模式 工厂模式(工厂三兄弟) TypeScript 简单工厂模式 定义一个接口,三个具体类。然后书写如下,通过选择,生产出相应的对象 编译后的js如下 利用反射改进 工厂方法 即,将工厂拆分 抽象工厂 抽象工厂比较简单不在阐述。 www.iming.info
阅读全文
摘要:设计模式 创建型模式 工厂模式(工厂三兄弟) 工厂模式分为简单工厂,工厂方法,抽象工厂。 简单工厂模式 一个接口,三个具体类,一个工厂,通过选择,生产出对应的对象。 利用反射改进工厂模式 由于违反开放 封闭原则,每次都要去修改源代码,所以直接使用反射机制。 将类传入,使用泛型+反射,生产出对象。 工
阅读全文
摘要:设计模式 创建型模式 单例模式 创建型模式 创建型模式隐藏类的实例和创建细节,通过隐藏对象如何创建组合在一起达到整个系统独立。 单例模式 确保同一时刻只有一个实例被访问。 Ensure a class has only one instance, and provide a global point
阅读全文
摘要:设计模式 开闭原则 即 对立与统一原则 什么是开闭原则 软件实体应该对扩展开放,对修改关闭,即实体应当通过扩展实现变化,而不是修改代码实现变化 什么是软件实体,项目或软件中按照一定逻辑规划划分的模块 抽象 类 方法 书店销售书籍 然后书写代码如下 书店出售小说类书籍,书写代码 其中,价格定义为int
阅读全文
摘要:设计模式 迪米特法则 只和朋友交流 Only talk to your immediate friends 只与直接的朋友通信。即每个对象都有耦合关系,对象之间有耦合。 定义老师类 public class Teacher{ // 老师对学生发布命令 public void commond(Grou
阅读全文
摘要:设计模式 接口隔离原则 用类图说明 然后书写代码清单 接着,使用具体的类实现 对星探定义 然后对星探进行实现 接着书写场景 接着,要进行更改了。对好看的定义,发生了改变,那么就应该改变PettyGirl中的内容,但是已经在接口中定义了。那么就有问题了。即,接口承担的内容过多导致 接口隔离原则 发现问
阅读全文
摘要:设计模式 里氏替换原则 继续里氏替换原则。 上回栗子为正方形不能被长方形继承,这次,具体 子类必须实现父类的方法 类图 对具体代码进行实践 接着拥有枪,定义士兵 最后定义整个场景 在场景中,三毛需要什么枪支,就直接new 出一个枪支即可,然后其内通过抽象类获取到对象,然后对齐进行修饰 装饰器模式 更
阅读全文
摘要:Java 实现队列 介绍 队列为特殊的线性表,队列的特点先进先出(FIFO),队列插入为入队,队列删除为出对。 Java 实现 这次使用顺序队列实现。(使用数组), why?为什么不直接使用顺序表作为底层容器,因为入队操作执行顺序表尾插入,时间复杂度为O(1) O(1) 普通语句,相互操作,时间复杂
阅读全文
摘要:java多线程 关于内存 每个线程会有自己的线程栈,即,变量不能共享,只能传值拷贝 每个线程new出的对象全都保存在堆中,全部共享 线程的生命周期 线程具有5种状态,即新建,就绪,运行,阻塞,死亡。 新建,当new出来一个线程以后,jvm为其分配内存空间,并初始化成员变量的值 就绪,当线程调用了st
阅读全文
摘要:设计模式 里氏替换原则 优点 面向对象的语言继承必不可少的,有如下优点 1. 代码共享,减少创建类的工作量 2. 提高代码的重用性 3. 提高代码的可扩展性 4. 提高代码的可扩展性 5. 提高产品代码的开放性 6. 继承侵入性 只要继承,必须拥有父类的内容 7. 降低代码的灵活性,子类必须拥有父类
阅读全文
摘要:设计模式 单一职责原则 单一职责原则使用的是创建型模式 创建型模式 创建型模式对类进行抽象 重点,创建型模式能够将对象的创建和和对象的使用分离。即使用创建型模式能够使得对象的创建,对象的使用分离。重点在于分离。 什么是单一的职责原则 设计模式有六大基本原则,单一职责原则,里氏替换原则,依赖倒置原则,
阅读全文
摘要:设计模式 UML关系基础 UML关系基础 类之间的关系 泛化 类在继承中表现为泛化和实现。 继承关系为is a的关系,两个对象之间用is a表示为继承关系。 eg,自行车是车,猫是动物。 泛化关系用空心箭头表示 如下图。 A继承自B 用空心箭头表示A继承自B 泛化关系表示为继承抽象类。 抽象类可以继
阅读全文
摘要:习题1 为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。 语句覆盖 原则覆盖程序中所有可执行的语句 设计的测试用例如下 编号 | 输入项 | 执行语句 | | ① | {x=17,y=6} | 执行语句3 ② | {x=1,y=
阅读全文
摘要:C++ 命名空间 C++为了区分多个xyz的函数的时候,需要使用命名空间进行区分。 定义命名空间 using 使用using告诉编译器使用哪个命名空间。 include include using namespace std; template // T为函数所使用的数据类型的占位符名称。 inli
阅读全文
摘要:C++ 数据抽象 什么是数据抽象 向外界提供关键信息。隐藏其后台的实现细节。只表现必要的信息,不呈现细节。 数据抽象是依赖于接口和实现分离。 通过外部接口,对其内部进行实现。达到数据抽象的目的 include int main(){ class Box{ public: double getVolu
阅读全文

浙公网安备 33010602011771号