自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 访问者模式(Visitor Pattern)

访问者模式(Visitor Pattern)是一种行为型设计模式,允许将一些操作从对象结构中分离出来,这些操作可以在运行时应用到集合中的各种对象上,而不必修改这些对象的类。访问者模式是一种将算法与其作用的对象结构分离的方法。

2024-05-28 05:17:21 132

原创 迭代器模式(Iterator Pattern)

迭代器模式(Iterator Pattern)是一种常见的设计模式,用于顺序访问一个集合对象中的各个元素,而无需暴露该对象的内部表示。迭代器模式可以提供一种方法来访问一个容器对象中的元素,而又不需暴露该对象的内部细节。

2024-05-28 05:06:20 118

原创 Template Method 模板模式

模板方法模式(Template Method Pattern)是一种行为设计模式,它在一个方法中定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。这样可以在不改变算法结构的情况下重新定义算法的某。

2024-05-28 05:01:12 132

原创 Strategy 策略模式

策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。通过定义算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。

2024-05-28 04:55:00 233

原创 装饰器模式(Decorator Pattern)

装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许通过将对象包装在装饰器类的对象中来动态地向单个对象添加职责,而不改变接口。这种方式非常灵活,它比继承更加灵活,因为它允许在运行时添加新功能。

2024-05-28 04:45:53 278

原创 适配器模式(Adapter Pattern)

适配器模式(Adapter Pattern)是一种结构型设计模式,用于解决不兼容接口之间的工作问题,通过引入一个适配器类来重新包装一个已有的类或接口,使其接口与其他的代码兼容。适配器模式通常用于使现有代码适应新的接口需求,从而允许原本因接口不兼容而不能一起工作的类可以一起工作。通过增加一个接口,将已存在的子类封装起来,client面向接口编程,从而隐藏了具体子类。实例1:对下面的例子做简单实现。

2024-05-28 04:36:05 177

原创 Factory Method pattern 工厂方法模式 (自用)

工厂方法模式(Factory Method Pattern)是一种常用的创建型设计模式,它提供了一种创建对象的方式,但实际的实例化过程被推迟到了子类中。当client不知道要创建哪个具体类的实例,或者不想在client代码中指明要具体创建的实例时,用工厂方法。定义一个用于创建对象的接口,让其子类来决定实例化哪一个类,从而使一个类的实例化延迟到其子类。这种模式允许类在不明确指定其对象具体类型的情况下,将对象创建的任务委托给其子类处理。

2024-05-28 04:25:40 116

原创 SOLID 原则

▪ (SRP) The Single Responsibility Principle 单一责任原则▪ (OCP) The Open-Closed Principle 开放-封闭原则▪ (LSP) The Liskov Substitution Principle Liskov替换原则▪ (DIP) The Dependency Inversion Principle 依赖转置原则▪ (ISP) The Interface Segregation Principle 接口聚合原则。

2024-05-27 08:43:13 402

原创 Java重写(Override)(自用)

子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者。父类的成员方法只能被它的子类重写。比父类中被重写的方法的访问权限。

2024-05-27 05:44:19 158

原创 抽象数据类型ADT(自用)

Java 中的各种 String.valueOf(Object Obj) 方法就是作为工厂方法实现的其他示例。或者简单地作为静态方法,如 Arrays.asList(),List.of()。针对观察器:用其他三类方法构造对象,然后调用被测观察器,判断观察结果是否正确。风险:如果被依赖的其他方法有错误,可能导致被测试方法的测试结果失效。观察器(Observer)获取抽象类型的对象并返回不同类型的对象。变值器:T+,t* → void | t | T。生产器:T+,t* → T。观察器:T+,t* → t。

2024-05-27 05:14:56 396

原创 Java 设计规约(自用)

后置条件是对方法的实现者的义务。如果前置条件对调用状态成立,方法就有义务遵守后置条件,通过返回适当的值、抛出指定的异常、修改或不修改对象等方式。前置条件是对客户端(即方法的调用者)的义务。方法的参数和返回值,但不应该讨论方法的局部变量或方法类的私有字段。如果效果没有明确说明输入是否可变,则我们假定输入的变异隐式不允许。尽量不设计mutating的spec,否则就容易引发bugs。把这些东西写好了,在IDE下看起来也会很方便,很好看。规约越强,开发者责任越重,客户端责任越轻;后置条件越强,规约强度越强;

2024-05-27 04:55:39 285

原创 正则表达式学习(自用)

正则表达式

2024-05-27 04:23:08 908

原创 数据类型总结

数据类型很多。

2024-04-07 20:43:00 446

原创 git常见问题(自用)

自用。

2024-04-07 20:40:14 378

原创 在IntelliJ IDEA简易使用JUnit

特别地,如果test.java放入了文件夹深处,在不设计包的情况下,会不断报错,此时要将整个含此文件的文件夹一层一层地设置成“测试源文件夹”,便可轻松解决问题。此时IDE内检测到问题,选择“黄色的小灯”——检测上下文问题(Alt+Enter),会有如下选项,按需选取即可。在“主菜单”->“设置结构”(ctrl+alt+shift+S)中,可以看到src被设置成了“源文件夹”。“源文件夹”和“测试源文件夹”都可以按需设置多个,来解决这样的问题。如果没有设置过JUnit,可以直接输入。

2024-03-18 00:28:08 1022

原创 初识Java(一)

软件构造需要Java语言,这个语言之前并没有接触过。之前只是接触过C/C++下面记录一些学习中遇到的特别的用法吧,主要是没接触过也不太了解的。下面的内容也没什么逻辑性......基本是想到哪里,接触到哪里,就写到哪里吧。以 hello world 开始。

2024-03-18 00:12:18 365

原创 开始学习软件构造

4.下载了IntelliJ IDEA ,开始熟悉Java语法(之前都没接触过。软件构造是哈工大这学期新开的一门课......感觉涉及到了很多未曾接触过的东西。5.中英文混杂的课程,确实看起来有时候会有些困难......慢慢熟悉着来吧。1.去官网下载git,按照默认进行安装。然后学习一些常用的git用法。3.下载JDK,直接整了个Java17的版本,不知道行不行。2.创建一个Github账号,测试git上传GitHub。暂时作了一些简单的处理和配置。

2024-03-05 10:28:44 427

空空如也

空空如也

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

TA关注的人

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