- 博客(46)
- 收藏
- 关注
原创 Iterator设计模式
当然,还有一种方式,具体迭代器作为具体类的私有内部类,不用考虑向iterator传值。客户端希望遍历被放入容器/集合类的一组ADT对象,无需关心容器的具体类型。其中可迭代接口,迭代器接口,java中已经实现,我们直接使用即可。也就是说,不管对象被放进哪里,都应该提供同样的遍历方式。具体类实现Iterable接口。,通常需要实现2个方法。
2023-05-26 22:15:12 87
原创 strategy设计模式
有多种不同算法来实现同一个任务,使client根据需要动态切换算法,而不是写死在代码里。采用Dependency的方式通过方法传参建立临时的delegation关系。具体类中,存在需要动态切换算法的方法。
2023-05-26 10:31:58 41
原创 visitor设计模式
通过传入不同的ConcreteVisitor,可为a, b扩展不同的方法。对外部提供访问ADT的方式,灵活扩展ADT的方法。
2023-05-25 22:26:31 42
原创 OO设计原则
LSP(The Liskov Substitution Principle,Liskov替换原则)SRP(The Single Responsibility Principle,单一责任原则)ISP(The Interface Segregation Principle,接口聚合原则)DIP(The Dependency Inversion Principle,依赖转置原则)OCP(The Open-Closes Principle,开放-封闭原则)
2023-05-25 19:59:38 702
原创 脚手架中使eslint失效
由各种脚手架创建的前端项目中,一般会默认添加eslint插件,以及prettier插件,但自动格式化和eslint的规则有时候并不匹配,比较麻烦。由脚手架创建的项目一般都有一个.eslintrc.js文件,修改这个属性。下面给一个办法,让eslint在脚手架中失效。
2023-05-16 20:10:38 111
原创 Abstract Data Type(ADT)
R和A之间映射关系的函数,即如何去解释R中的每一个值为A中的每一个值。,client无需关心数据如何具体存储的,只需使用操作即可。A:即抽象空间(client看到和使用的值构成的空间)ADT开发者关注表示空间R,client关注抽象空间A。AF(abstract function):抽象函数。给出理由,证明代码并未对外泄露其内部表示——自证清白。RI(rep invariant):表示不变量。某个具体的“表示”是否是“合法的”由一组操作所刻画的数据类型。
2023-05-09 14:36:04 77
原创 Java中的I/O流
是Reader的子类,是从字节流到字符流的桥梁。另外,当JVM反序列化对象时,能找到class文件,但是class文件在序列化对象之后发生了修改,那么反序列化操作也会失败,抛出一个。缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。经过以上的演示,每次程序运行,创建输出流对象,都会清空目标文件中的数据。使用数组读取,每次读取多个字节,减少了系统间的IO操作次数,从而提高了读写的效率,建议开发中使用。
2023-03-14 21:00:09 66
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人