自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 联想电脑(yoga)触摸板失灵

如果有就删除触摸板驱动,重新检测硬件改动,然后重启,解决。右击计算机,选择管理。

2024-02-28 09:25:15 704

原创 windows更换应用程序图标

windows更换应用程序图标

2023-03-13 14:43:52 821 1

原创 软件构造6.2错误和异常的处理

异常的分类均是Throwable的子类。Error:指非程序引起的错误,因为外部环境不满足要求而导致的异常。是内部错误,一旦发生,想办法让程序优雅地结束。包括设备限制,物理设施等原因,具体有虚拟机错误(内存超出限定范围,栈溢出等),链接错误;Exception:- 运行时异常:由于程序员编写的程序中有错误,在运行时产生的异常。- 其他异常:由于用户输入等外部原因引起的程序异常。一般程序员可以通过try-catch来捕获程序中的异常,但是一般是捕获用户输入可能造成的异常,而不是捕获因为代码bug

2020-06-04 20:20:12 180

原创 软件构造6.1健壮性和正确性简介

健壮性系统在不正常输入或不正常外部环境下仍能够表现正常的程度。健壮性原则(Postel’s Law)总是假定用户恶意、假定自己的代码可能失败。对自己的代码要保守,对用户的行为要开放。健壮性编程的原则:封闭实现细节,限定用户的恶意行为。考虑极端情况 , 没有 “不可能”。正确性程序按照spec 加以执行的能力,是最重要的质量指标!健壮性和正确性的对比正确性倾向于直接报错(error),健壮性则倾向于容错(fault-tolerance)。对外的接口,倾向于健壮;对内的实现,倾向于

2020-05-30 10:51:39 792

原创 软件构造5.1面向对象设计的构造原则(可维护性)

OO设计原则:SOLID单一责任原则(SRP)每个类中只有一个功能,不应该有多于1 个原因让你的ADT 发生变化,否则就拆分开。开闭原则(OCP)对扩展性的开放:模块的行为应是可扩展的,从而该模块可表现出新的行为以满足需求的变化。对修改的封闭:虽然可以扩展模块的行为,但是模块自身的代码是不应被修改的。实现该原则的方案:抽象技术,例如:策略模式,用多种不同的实现方式继承抽象类即可。Li...

2020-05-08 15:33:47 200

原创 软件构造5.1可维护性的度量(圈复杂度,耦合度,内聚)

软件可维护性:当软件的需求有所改变时,需要进行软件维护,修复错误,改善性能。包括纠错性维护、适应性维护(在不同环境下均可用)、完善性维护(扩充软件的性能,升级)和预防性维护(为了以后的维护方便,对软件的架构进行修整)。软件维护不仅仅是运维工程师的工作,而是从设计和开发阶段就开始了。可维护性的度量:(可扩展性,灵活性,可适应性,可管理性,支持性)圈复杂度:衡量代码的结构复杂度。例如,白盒测试...

2020-05-08 14:11:39 893

原创 软件构造4.3面向复用的设计模式

设计模式:针对软件设计中给定环境中经常出现的问题的通用的、可重用的解决方案。除了类本身,设计模式更强调多个类/对象之间的关系和交互过程—比接口/类复用的力度更大。面向复用的设计模式主要有以下几种:结构模式(通过改变类的结构,使类具有新的特性。)适配器模式当用户希望的接口形式(参数形式)和已经实现的方法接口(可复用的方法)不匹配时,需要设计一个适配器接口,适配器中所有API的格式都符合用户...

2020-05-07 11:18:10 131

原创 软件构造4.2设计系统层级的可复用库libraries和框架framework

libraries和framework的作用机制在以前的文章中已经说明过了:https://blog.csdn.net/qq_43323454/article/details/105775842白盒框架:通过继承原有框架,重写需要修改的方法即可。黑盒框架:使用委托的方法,增加一个属性plugin, 类型为接口Plugin,把这个接口暴露给程序员,只需要实现这个接口即可。...

2020-05-06 11:55:37 153

原创 软件构造4.2如何设计面向复用的软件(Liskov Substitution Principle,委托)

设计可复用的类封装和信息隐藏:即表示独立性等。继承和重写多态,子类型和重载(对方法名的复用)泛型行为子类型和 Liskov Substitution Principle (LSP):行为子类型是指父类型可以做的事情子类型都可以做,而且可能比父类型做得更好。行为子类型的要求:a. 子类型需要实现抽象类型中的所有未实现的方法,并且子类型可以增加方法,但不可删。b. 返回值:子类型中重...

2020-05-06 07:58:26 152

原创 软件构造4.1可复用性的度量

可复用性:提高效率并且经过充分测试,可靠稳定。定义软件复用是使用已经存在的软件组成成分来完成软件系统的过程,包括两个方面:面向复用编程(开发出可复用的软件)和基于复用的编程(利用已有的可复用软件搭建应用系统)。可复用软件的开发成本:若软件产品的规模较小,则可复用开发模式的成本会高于不复用的开发模式。因为有各种辅助类、接口的开发。度量复用的频度,复用的代价分类(级别)软件构造过程中的...

2020-05-03 10:55:12 361

原创 软件构造3.4ADT设计之对象判相等(ADT和OOP中的等价性)

问题引入:Java中有两种判相等的方法:== 和equals(), 其中 == 判断的是引用等价性,而equals()会通过比较对象内部的属性或内容,判断的是对象等价性。故对基本数据类型,使用 == 判定相等,对对象类型,使用equals()。因为在Object中实现的equals()是直接判断引用等价性,所以在自定义ADT时,需要重写Object的equals()方法。问题:如何为自定义的AD...

2020-04-26 11:07:32 151

原创 软件构造3.3(ADT的实现)

ADT的实现1.两种形式:Interface + class :接口中定义ADT的规约,类中实现ADT。(更普遍)only class :直接使用类作为ADT,既定义ADT也实现ADT。2.各自的说明和他们之间的关系:接口:接口中不能有构造函数,因为接口是要暴露给用户的,所以不能暴露实现细节。所以若想直接使用接口来创造对象,即interface的creator,需要使用stati...

2020-04-26 09:23:37 203

原创 软件构造3.2ADT

抽象数据类型概念与传统类型关注数据的具体表示相反,抽象类型强调“作用于数据上的操作”,用户无需关心数据是如何具体存储的,只需使用操作即可。就是说,ADT是由操作定义的,与其内部如何实现无关。ADT的操作可以分为以下几类:构造器:从无到有,创建一个新的对象,可能实现为构造函数或静态函数。生产器:从有到有(更多),从一个或多个对象出发, 生成一个新的对象。观察器:从有到无,并不改变任何...

2020-03-30 23:25:05 116

原创 软件构造3.1

(im)mutable and finalmutable and immutable 是用来描述数据类型的,描述是否能改变一个变量的值,描述是否能改变该变量的存储空间内的值,用Snapshot图来看就是画一个圈还是两个圈。immutable类型能保证多个变量指向同一个值时的安全性。mutable类型不能保证,所以在参数传递等情况中会存在潜在的风险,可以使用防御式拷贝来避免。final是ja...

2020-03-24 19:54:20 82

原创 zxyhello的一生计算机系统大作业

计算机系统大作业

2020-01-05 22:26:15 245

空空如也

空空如也

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

TA关注的人

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