自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-08-18

Spring AOP原理[学习笔记]Spring中AOP的原理Proxy.newProxyInstanceInvocationHandler进一步封装[学习笔记]Spring中AOP的原理AOP实际上使用了代理模式,具体分为两种,包括JDK动态代理和CGLIB动态代理。Proxy.newProxyInstanceJDK动态代理:调用了Proxy.newProxyInstance方法,该方法有三个参数,分别是ClassLoader,用于创建代理对象的类加载器,Interface[] 接口的数组,可以理

2021-08-18 16:54:39 78

原创 设计模式

设计模式工厂模式不依赖于new函数返回一个对象,而创建一个工厂类,在工厂中有一个工厂方法,根据给定的参数返回相应的产品,这样,需要不同产品的时候,可以通过工厂类的同一方法输入不同类名即可获取到相应的对象。但是,显然,一堆if else之类的东西,显然违背了开闭原则,当需要新的产品,则需要修改工厂方法。这张图就是一个典型的工程模式UML,将所有产品进行抽象,抽象为一个抽象类Product...

2019-06-23 09:25:29 122

原创 HIT软件构造学习笔记与心得—6,7

摘要:SOLID原则正则表达式Throwable黑盒测试用例设计注释形式写测试策略SOLID单一责任原则:一个类尽量专心做一件事,这样当发生变化时,引起变化的类只有一个。开放封闭原则:对扩展是开放的,对修改是封闭的。显然,继承和委托可以做到这一点,当我们需要在一个地方用if,else或者switch判断多种情况,特别是判断某一个对象是什么类的时候,可以将这些对象进行抽象,抽象...

2019-06-18 10:29:06 182

原创 HIT软件构造学习笔记与心得—5.3

面向复用的设计模式摘要:适配器模式装饰器模式外观模式策略模式模板模式迭代器模式模式分类:创建型:和对象的创建相关结构型:当用户需求变化,都对象结构的冲击行为型:针对软件不同类之间进行的交互适配器模式:用一个老的,已有的东西,去满足新的需求和功能Adaptee是已有的接口,实现了功能SpecificRequest,但新的需求是ITarget的Request,我们先设计一...

2019-06-17 23:42:28 167

原创 HIT软件构造学习笔记与心得—5.2

摘要:LSP原则协变与逆变泛型的子类型化泛型的通配符几种委托的区别Comparator和Comparable、黑盒框架和白盒框架原理及其实现Java会确保以下规则:子类型可以增加方法,但不可删子类型需要实现抽象类型中的所有未实现方法子类型中重写的方法必须有相同或子类型的返回值子类型中重写的方法必须使用同样类型的参数子类型中重写的方法不能抛出额外的异常里氏替换原则(LS...

2019-06-17 21:00:09 126

原创 HIT软件构造学习笔记与心得—5-1

摘要:白盒复用,黑盒复用白盒框架(继承),黑盒框架(委托)委托的种类及其区别面向复用编程可重用的外部表现(类型重用(泛型)以及实现重用(接口和抽象类))面向复用编程主要有以下几种复用:代码级别复用:method模块级别复用:class,interfaceLibrary级别的复用:API系统级别的复用:框架白盒复用:代码本身可知,通常需要某种修改或改编黑盒复用:通过提供...

2019-06-17 20:35:28 231

原创 HIT软件构造学习笔记与心得—3.4

摘要:面向对象编程继承和重写多态和重载接口,抽象类,具体类泛型和泛型编程重载和重写▪方法覆盖是一种语言功能,它允许子类或子类提供已由其某个超类或父类提供的方法的特定实现。子类可以重新实现父类中的方法子类中的实现通过提供与父类中的方法具有相同名称,相同参数或签名以及相同返回类型的方法来覆盖(替换)超类中的实现。执行的方法版本将由用于调用它的对象确定。如果父类的对象用于调用该...

2019-06-17 15:56:38 163

原创 HIT软件构造学习笔记与心得—3.3

摘要:何为ADT,如何构造良好的ADT表示独立性测试ADT(测试策略,等价类划分)RI和AF,A,R抽象数据类型ADT以其操作为特征操作分为4类:Creator:用其他数据类型创建新的对象(构造器,静态方法String.valueOf(),或者BigInterger.Zero);Producer:在已有的数据类型基础上创建新的对象(整数的±*/,数组的拼接)Observer:...

2019-06-17 15:22:52 146

原创 HIT软件构造学习笔记与心得—3.2

摘要:如何写文档规约前置条件后置条件(比较强弱)行为等价性(一个方法替代另一个方法)黑盒测试(不知道代码)白盒测试(知道代码细节)设计良好的规格说明如果写文档规约:先看看别人写的API的文档:文档应该涉及一下内容:已经实现或继承的接口或类(父类)直接子类或接口、抽象实现(子类)类的描述构造函数摘要能调用的方法清单对每个方法的详细调用——描述——参数——返回值...

2019-06-17 15:10:35 141

原创 HIT软件构造学习笔记与心得—3.1

摘要:主要讲了数据类型(分为基本数据类型和对象数据类型),类型检查(静态检查和动态检查),mutable和immutable,以及关于null的一些陷阱。数据类型:值得注意的一点:所有基本数据类型都是immutable包装类例如:Integer,Double用基本数据类型包装成的类一般用在集合中尽量少用包装类语言会在包装类和非包装类之间进行自动转换例如List list =...

2019-06-17 14:21:32 149

原创 HIT软件构造学习笔记与心得—2.1

摘要:这部分主要讲了几种软件开发模型,以及GIT版本控制工具瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。每次遇到新的变化或没有覆盖到的问题,都要返回上一级,不适合总是变化的项目增量模型将项目分解为一个个小项目,每次完成一个小的项目,分批次提交给用户**,一旦开始开发...

2019-06-17 13:44:13 238

原创 HIT软件构造学习笔记与心得—1.2

1.2软件构建的质量目标▪软件系统的质量属性外部质量因素与内部质量因素重要的外部质量因素质量因素之间的权衡▪软件构建的五个关键质量目标(理改重壮快)易于理解、便于修改、重用性高,健壮性好,高效运行易于理解:优雅和美观的代码/可理解性为变化做好准备:可维护性和适应性开发成本低廉:设计/重用:可重用性防止漏洞:稳健性高效运行:性能外部质量因素与内部质量因素外部质量是用户...

2019-06-17 13:19:47 203

原创 HIT软件构造学习笔记与心得—1.1

软件的多维度视角软件多维度视角分为三组:代码和组件构建时和运行时时刻与周期(period) /如果翻译有误请见谅/所有的东西都在这张图里了构建时,某一时刻,代码级别:主要是源代码;也包括接口,类,方法的视图UML视图:构建时,时刻,组件:组件的UML视图:源代码物理地组织成文件,其进一步按目录组织;文件被封装成包、组件和子系统可复用模块形成类库▪库存储在自己的磁...

2019-06-17 13:11:21 180

原创 HIT软件构造__Lab3

1 实验目标概述本次实验覆盖课程第 3、5、6 章的内容,目标是编写具有可复用性和可维护 性的软件,主要使用以下软件构造技术:⚫ 子类型、泛型、多态、重写、重载⚫ 继承、代理、组合 ⚫ 常见的 OO 设计模式⚫ 语法驱动的编程、正则表达式⚫ 基于状态的编程⚫ API 设计、API 复用本次实验给定了五个具体应用(径赛方案编排、太阳系行星模拟、原子结构 可视化、个人移动 App 生态系...

2019-05-19 21:25:11 471

原创 HIT软件构造__Lab2

1 实验目标概述本次实验训练抽象数据类型(ADT)的设计、规约、测试,并使用面向对象 编程(OOP)技术实现 ADT。具体来说:⚫ 针对给定的应用问题,从问题描述中识别所需的 ADT;⚫ 设计 ADT 规约(pre-condition、post-condition)并评估规约的质量;⚫ 根据 ADT 的规约设计测试用例;⚫ ADT 的泛型化;⚫ 根据规约设计 ADT 的多种不同的实现;...

2019-05-19 21:18:25 609

原创 HIT软件构造__Lab1

HIT软件构造__Lab13 实验过程请仔细对照实验手册,针对四个问题中的每一项任务,在下面各节中记录你的实验过程、阐述你的设计思路和问题求解思路,可辅之以示意图或关键源代码加以说明(但无需把你的源代码全部粘贴过来!)。为了条理清晰,可根据需要在各节增加三级标题。3.1 Magic Squares首先,编写一个方法,参数为文件名,该方法可以从文件中读入字符串,构建出矩阵,并判断该矩阵是否...

2019-04-07 10:32:40 705

空空如也

空空如也

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

TA关注的人

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