自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 软件构造笔记(八)

Observer pattern这种模式是一种发布订阅模式,发布方变化,通知订阅方,订阅方在发布方注册,通过接口分离订阅方和发布方。具体来说,在发布方中定义了一个list用来存放订阅方,在发布方内部有添加删除发布方的函数。在发布方中定义一个notify函数,可以用来遍历列表中元素,使得每个元素对发布方更新。在订阅方中,可以访问发布方中的一个元素。利用这个函数来实现交互。Mediator 模式...

2019-06-23 20:10:21 168

原创 软件构造笔记(七)——对课程建议

本门课程已经接近尾声,考试也即将到来,经过一学期的学习,对于这门课有了一些自己的建议,写在这里,希望能进一步帮助学校和老师们提升这门课程的质量。一、在实验中缺少团队合作。对于课程中所讲的一些模型,比如敏捷开发,这些是在一个团队中起作用的。而在实验中,我们并没有很好地体验到这些工作模式的作用,导致对于这一部分的理解不是很深入,只是知道这么一个概念,并没有在实践中亲身体会到这种模式的优点。同时,对于...

2019-06-22 21:32:53 179

原创 软件构造笔记(六)

模块化设计五项原则直接映射对持续性和可分解性产生影响。少的接口*影响可持续性、保护性、可理解性、可组合性小的接口*影响可持续性和保护性显示接口*影响可分解性、可组合性、可持续性、可理解性信息隐藏影响可持续性耦合聚合耦合耦合程度主要看两个模块之间接口数量和复杂度聚合如果一个模块所有元素都是为了同一个目标,则有高聚合聚合和耦合好的设计应该在模块间低耦合,模块内高聚合...

2019-06-19 22:40:28 171

原创 软件构造笔记(五)

LSP这种规则下要遵循以下几种原则。1、子类的成员变量要求更强或者相同2、子类继承的方法在重写时要求有更强的后置条件或者相同的后置条件3、相同或更弱的前置条件型变所谓型变,其实就是子类型出现在别的类型中,之后得到两个新的类型,判断这两个新的类型之间的关系。一般有三种情况1、协变:保持了原来的父子关系2、逆变:颠倒了父子关系3、不变:失去了父子关系协变类型可以利用一个子类重写父类...

2019-06-17 19:19:35 164

原创 软件构造笔记(四)

Equals当我们要设计一个类的时候,如何定义两个实例相同是需要我们自己去考虑的。当我们不重写equals函数时,系统给这个类默认的equals函数是比较两个实例的地址是否相同。很显然这种情况下,很大概率两个实例是不同的。所以我们要自己重写equals函数。在重写equals函数时候,我们常常会用到instance of这个操作,这是允许的,但是除了这个函数之外,别的地方最好不要用 insta...

2019-06-16 23:11:30 105

原创 软件构造笔记(三)

OOPOOP以类为核心概念一般采用泛型,继承,多态,动态匹配方式。编写类的时候注意对象的状态行为类变量是类共享的,同理还有类方法,其余的是实例方法。静态方法不能调用非静态方法一个接口可以扩展其他接口,类可以实现多个接口,接口中没有方法的实现,只有定义。接口可以有多种实现。在java8中可以有静态方法调用者理解ADT只需要理解接口,不能在ADT的表示上创建无意的依赖,不同实现可以在不同的...

2019-06-16 22:05:50 238

原创 软件构造笔记(二)

软件开发模型瀑布模型 :按照顺序进行,应对变化代价高增量模型:整个产品分成不同增量,逐一完成V模型:瀑布模型扩展,强化测试原型法:实现系统原型,进行模拟。可以获取用户的早期反馈,用户判断软件是否符合规格说明,对软件进行估算。螺旋模型:风险驱动过程模型。敏捷开发:提倡适应性规划、演化开发尽早交付和持续改进,鼓励对变化做出快速灵活相应人和人与人的互动胜于过程和工具,可运行的软件胜过面面俱...

2019-04-07 20:30:15 174

原创 软件构造学习记录(一)

软件构造三方面onetwoBuild-timeRun-timeMomentPeriodCode-levelComponent-levelCode-level注重代码底层是如何组建的,Component-level注重于组件之间的结构Moment注重于某一时刻的状态 Period注重于在一段时间内的变化三者两两组合共有8种情况如下图所示,下面来分别分...

2019-02-27 21:45:06 381

原创 Hello的一生

Hello的一生第1章 概述1.1 Hello简介首先程序员通过键盘和编辑器编写hello.c的代码,保存为文本文件。之后我们的hello的生命就开始了!预处理cpp首先将其处理为hello.i,之后由编译器ccl处理为hello.s汇编语言文件,再由汇编器as处理得到hello.o可重定位二进制文件。之后链接器ld将hello.o与其他.o文件或者函数库进行连接,得到了一个可执行文目标程序...

2018-12-30 11:28:47 347

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除