一、常用设计原则
1.软件开发流程
需求分析文档、概要设计文档、详细设计文档、编码和测试、安装和调试、维护和升级
2.设计原则
- 开闭原则(Open Close Principle)
对扩展开放对修改关闭,为了使程序的扩展性好,易于维护和升级。 - 里氏代换原则(Liskov Substitution Principle)
任何基类可以出现的地方,子类一定可以出现,多使用多态的方式。 - 依赖倒转原则(Dependence Inversion Principle)
尽量多依赖于抽象类或接口而不是具体实现类,对子类具有强制性和规范性 - 接口隔离原则(Interface Segregation Principle)
尽量多使用小接口而不是大接口,避免接口的污染,降低类之间耦合度。 - 迪米特法则(最少知道原则)(Demeter Principle)
一个实体应当尽量少与其他实体之间发生相互作用,使系统功能模块相对独立。 - 高内聚,低耦合。
- 合成复用原则(Composite Reuse Principle)
尽量多使用合成/聚合的方式,而不是继承的方式。
3.设计模式分类
创建型模式 - 单例设计模式(饿汉式、懒汉式)、工厂方法模式、抽象工厂模式
结构型模式 - 装饰器模式、代理模式
行为型模式 - 模板设计模式
二、新特性
1.Java 8
1.函数式接口
2.Lambda表达式
3.方法引用
4.功能增强的Stream接口
2.Java 9
1.模块化:模块就是代码和数据的封装体,模块的代码被组织成多个包,每个包中包含Java类和接口,模块的数据则包括资源文件和其他静态信息。
2.菱形操作符(钻石操作符 <>)
3.Java9的List、Set和Map集合中增加了静态工厂方法of实现不可变实例的创建。不可变体现在无法添加、修改和删除它们的元素。
不允许添加null元素对象。
4.InputStream类中提供了transferTo方法实现将数据直接传输到OutputStream中。
3.Java 10
1.局部变量类型推断(使用var声明)
值得注意的点:
- var不是关键字,是java中一个保留的类型名称
- Java10可以使用var作为局部变量类型推断标识符,此符号仅适用于局部变量,增强for循环的索引,以及传统for循环的本地变量。
- 它不能使用于方法形式参数,构造函数形式参数,方法返回类型,字段,catch形式参数或任何其他类型的变量声明。
4.Java 11
- 简化了编译操作
- String类新增以下几种方法
- boolean isBlank() 判断字符串是否为空或只包含空白代码点
- Optional map(Function<? super T,? extends U>mapper)根据参数指定规则的结果来得到Optional类型的对象
- T orElse(T other)若该值存在就返回,否则返回other的数值。
阶段总结
项目心得
虽然项目基本算是熬夜一晚上写完了,但还是暴露了很多的问题,时间紧凑是一方面,但通过一次综合性较强的练习,足以暴露出很多问题,自己虽然也另外简单划分了一下项目的整体结构,也额外尝试增加很多细节,但问题是随着项目的不断完善,对IO流一些更细节的知识点掌握明显有问题,导致了整个工期大多数时间是在调试IO流方面的BUG;其次,在整个过程中,对自己JAVA SE阶段的各部分知识点的掌握程度有了更清晰的认识,IO流还需要多多加强;最后就是因为个人的时间问题,在整个项目中,还是没有尽可能多的去用到SE阶段所学的知识,设计模式有涉及,但自己概念掌握的不够牢固,用的也不是特别熟练,项目还有待完善,加油!