- 博客(8)
- 收藏
- 关注
原创 lsp
里氏替代原则,(Liskov Substitution Principle, LSP )定义:Functions that use pointers or referrnces to base classes must be able to use objects of derived classes without knowing it.(所有引用基类的地方必须能透明地使用其子类的对象。)2.理解:只要父类能出现的地方,子类就可以出现,并且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要.
2020-07-12 10:49:33
297
1
原创 template Method
模板方法模式模板方法(Template Method)的定义模板方法是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方法实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。模板方法模式的结构模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。模板方法模式是需要开发抽象类和具体子类的设计师之间的协作。一个设计师负责给出一个算法的轮廓和骨架,另一些设计师
2020-07-12 10:46:37
135
原创 异常的学习心得
在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出)。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。Throwable: 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运
2020-07-10 17:25:01
350
原创 Java复用总结
软件复用是使用现有软件组件实现或更新软件系统的过程。软件重用的两个视角:面向复用编程:开发出可复用的软件基于复用编程:利用已有的可复用软件搭建应用系统为什么需要复用降低成本和开发时间产生可靠的软件实现标准化,在不同应用中保持一致可重用组件的级别和形态代码级别复用两种类型:白盒复用:源代码可见,可修改和扩展,复制已有代码当正在开发的系统,进行修改优点:可定制化程度高缺点: 对其修改增加了软件的复杂度,且需要对其内部充分的了解黑盒复用:源代码不可见,不能修改,只能通过API接口来使用
2020-07-10 17:20:58
470
原创 装饰器模式
一、什么是装饰器模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。在不想增加更多子类的情况下扩展类,动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。二、装饰器模式的具体实现1、结构图2、分析装饰模式和其职责: 1.动态的为一个对象增加新的功能
2020-07-10 17:11:01
116
原创 软件构造Lab2
1 实验目标概述本次实验训练抽象数据类型(ADT)的设计、规约、测试,并使用面向对象 编程(OOP)技术实现 ADT。具体来说: 针对给定的应用问题,从问题描述中识别所需的 ADT; 设计 ADT 规约(pre-condition、post-condition)并评估规约的质量; 根据 ADT 的规约设计测试用例; ADT 的泛型化; 根据规约设计 ADT 的多种不同的实现;针对每种实现,设计其表示 (representation)、表示不变性(rep invariant)、抽象过程(
2020-05-14 15:46:04
555
原创 Java凸包问题
前言:首先,什么是凸包?假设平面上有p0~p12共13个点,过某些点作一个多边形,使这个多边形能把所有点都“包”起来。当这个多边形是凸多边形的时候,我们就叫它“凸包”。如下图:然后,什么是凸包问题?我们把这些点放在二维坐标系里面,那么每个点都能用 (x,y) 来表示。现给出点的数目13,和各个点的坐标。求构成凸包的点?解一:穷举法(蛮力法)时间复杂度:O(n³)。思路:两点确定一...
2020-03-15 23:26:09
442
原创 软件构造课1.2
1.2软件构造的质量目标Quality Objectives of Software Construction上一节搞清楚了“要构造的结果是什么” 这一节要理解清楚“构造的结果如何才算好课程目标Objective of this lecture1、 软件构造过程中应考虑的重要质量指标To know quality factors to be cared in software constru...
2020-02-29 14:17:15
687
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人