七大设计原则 单一职责 开闭 里氏代换 依赖倒转 接口隔离 合成复用 迪比特法则 作业一、 4个原因——找案例分析: 过于僵硬 过于脆弱 复用率低 黏度过高 作业二、面向对象的用单一职责? 作业三、开闭原则的书店那题 好的软件 可扩展性 灵活性 可插入性 &n
结构型模式
将类像搭积木一样搭建起来 类结构型模式 对象结构型模式 关心类与对象的组合 适配器模式 客户端可以通过目标类的接口访问它所提供的服务 :适配器 被包装的对象:适配者 将一个接口转换为客户想要的接口 角色 target 目标抽象类 adapter 适配器类 Adaptee &nb
DevCloud敏捷开发
敏捷 敏捷宣言 个体和交互 胜过 过程和工具 可以工作的软件 胜过 面面俱到的文档 客户合作 &nb
面对对象方法的基本概念
1、对象的概念 多态 继承 封装和隐蔽的概念:封装的主要目的是实现信息隐藏 面对对象的产生 结构化程序设计语言 面对对象语言的 聚合关系 软件复用 继承 组合 聚合 类图:用户角度 关联关系(普通实线) 双向关联 单向关联 自身关联 聚合(空心菱形):可以脱离主
Linux的软盘生成命令
以前记得用 linux下的dd命令做过linux的启动盘,dd应该是可以制作的 ,于是在网上找了下dd制作映像文件,果然是可以的,制作方法如下: 1 先制作一个空的软盘映像文件diska.img(1.44Mb的软盘映像文件): dd if=/dev/zero of=diska.img bs=512 count=2880 2 制作一个包含boot.bin的映像文件boot.
代码生成
一、代码生成阶段 源程序——>前端——中间代码——>代码优化器——中间代码——>代码生长器——>目标程序 代码生成涉及:存储管理,指令选择,寄存器分配,计算次序选择 二、目标程序 1、绝对机器语言程序 2、可重定位机器语言程序 允许程序模块分别编译 &nb
L属性定义
一、L属性的自上而下计算 1、边分析边计算 由于属性的计算次序受分析方法所限定的分析树节点建立次序(自左向右的)的限制,所以,只有当属性是自左向右流动时才能边分析边计算 2、L属性定义 (1) A—>X1X2...Xn 每条规则计算的属性是A的综合属性或者Xj的继承属性
语法制导的定义
一、基础文法 1、语法制导的定义:带属性和规则的上下文无关文法 2、基础文法:语法制导定义中的文法(LL或者LR之类的) 3、定义: 每个文法符号都有一组属性 &
自下而上分析
SLR LR(1) LALR(1) 一、引入: 自上而下分析:实现最右推导很困难 因此经常使用自下而上分析进行最右推导 二、概念 1、归约:最右推导的逆过程的一步 把句柄归约成非终结
自上而下分析
一、开始 从根部开始构建语法树 二、两大问题 1、消除左递归 (1)问题: 无限递归 &n