软件构造
Cccccent
这个作者很懒,什么都没留下…
展开
-
【软件构造】用git向github上传代码(简版)
篇首:我这个人有一个特质,无论做什么事都会把所有的坑都踩一边,稳定驾驶的情况极少。写这个是为了给以后有问题的同学留个参考,也为了给自己提个醒。写的不一定完全对,欢迎评论区指正,毕竟,我也是个手残的菜鸡。 添加一个完全的新项目 问:把大象装冰箱总共分几步? 答:三步:把冰箱门打开,大象放进去,把冰箱门关上。 把代码放进GitHub和把大象放冰箱的情况差不多,也大致分三步:建立本地库,连接远程库,代...原创 2019-07-22 02:32:10 · 210 阅读 · 1 评论 -
【软件构造】MacOS下利用git提交代码及相关问题
前言: 之前在windows平台下写过一篇关于git使用的文章,但是那篇blog写的太过于新手向,而且也没有给出过程中可能遇到的问题的解决方案。最近要用git提交学校课程的实验代码,故重开一篇,记录一下实验中能用到的git的相关内容(MacOS下),供大家参考,也供自己查阅。具体的提交过程就不再赘述,上一篇文章里写的还算清楚。能力有限,如有错误之处敬请指正。 参考内容: 实验楼课程–https...原创 2020-02-24 19:21:34 · 161 阅读 · 0 评论 -
【软件构造】Strategy模式的运用
策略模式 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。 包括以下三个角色: 环境(Context)角色:持有一个Strategy的引用。 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。 具体策略(ConcreteStrategy)角色:原创 2020-07-11 22:53:10 · 164 阅读 · 0 评论 -
【软件构造】Override和Overload有何区别?
Override 与OverLoad的区别 这个本来应该在写实验的时候就写完,但是当时老是被乱七八糟的事分去精力,做往年期末复习题遇到了相关知识点,现在补上,作为复习整理。 多态性的不同表现 Override:在子类中如果需要定义一个与父类重名且参数相同的方法,这种操作成为重写(Override)。当我们调用子类的这个方法时,父类中的同名方法将被屏蔽。 OverLoad:在同一个类中如果需要定义多个同名的方法,参数不同(个数不同,类型不同,次序不同),这种操作成为重载(OverLoad)。 Overr原创 2020-07-10 21:48:00 · 177 阅读 · 0 评论 -
【软件构造】LSP,协变和逆变
1.LSP原则: 内容: 任何基类可以出现的地方,子类一定可以出现。 四条原则: 子类完全拥有父类的方法,当子类不是抽象类时,必须将父类的抽象方法全部实现。 子类可以拥有父类没有的方法 在子类中override或实现父类的方法时,前置条件需要更加宽松(形参比父类方法更加宽松)。 在子类中override或实现父类的方法是,后置条件需要更加严格(返回值)。 个人理解: LSP的四条原则其实是为了保证同一件事:父类是可以被任意一个子类在任何时候替换的。这也是继承和复用的前提。 总的来说,对于后两条的理解,原创 2020-06-20 21:56:27 · 367 阅读 · 0 评论 -
【软件构造】利用迭代器Iterator删除元素的异常、源码分析及处理
Iterator 一个对象,专门用于处理集合中的元素。 只能单向移动。 利用Iterator遍历: 遍历代码如下: import java.util.*; public class Muster { public static void main(String[] args) { ArrayList list = new ArrayList(); l...原创 2020-04-12 13:20:27 · 402 阅读 · 0 评论 -
【软件构造】凸包算法------软件构造实验lab1
凸包的定义及算法 定义: 在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,…Xn)的凸组合来构造。 定义可能看不懂。说白了,凸包就是在已知的所有点中找到一个最少数目个点的集合,使得所有点都在这些点的连线形成的多边形内或多边形上。 定义有两点需要注意: 凸包之外的点位于多边形上也是符合条件的 最小数目的点:如果形成的多边形有若干个相...原创 2020-03-14 02:12:08 · 183 阅读 · 0 评论