摘要: 适配器模式 需求方法M1。但已经存在一个方法M2能实现需求功能,引入子类来覆盖M1方法(M1方法中调用已有的M2方法)。这个新子类就是适配器 将已有的方法转换为需求的另一种方法(一般由于方法名差异;参数不同) 这一模式中的“接口”是广义接口,可代指一个/一组方法集合 优点:无需修改已有内容,开闭;增 阅读全文
posted @ 2024-06-24 09:27 月亮熊 阅读(16) 评论(0) 推荐(0)
摘要: 1.单元测试关系的是类中方法的逻辑正确性,不应该关注方法外部逻辑; 1.1模块可以始终符合期望,在此之后才有集成工作 2.不关注依赖方运行,用MOCK伪造假的依赖服务。(mock用于解耦 ,模块思想,基本都是mock框架 mockito); 2.2伪造的服务应清楚受测模块约束,不需要满足不必要的服务 阅读全文
posted @ 2024-06-24 09:27 月亮熊 阅读(27) 评论(0) 推荐(0)
摘要: 建造者模式 在建造者模式中,通常会定义以下接口/抽象类: 抽象建造者接口(Builder):定义了构建产品各个部分的抽象方法,通常包括创建产品和设置产品各个部分的方法。具体建造者类将实现这个接口来构建产品的各个部分。 产品接口(Product):定义了产品的抽象接口,通常包括产品的属性和行为。具体的 阅读全文
posted @ 2024-06-24 09:27 月亮熊 阅读(16) 评论(0) 推荐(0)
摘要: 遗传算法的基本原理是通过作用于染色体上的基因寻找好的染色体来求解问题,它需要对算法所产生的每个染色体进行评价,并基于适应度值来选择染色体,使适应性好的染色体有更多的繁殖机会,在遗传算法中,通过随机方式产生 若干个所求解问题的数字编码,即染色体,形成初始种群;通过适应度函数给每 个个体一个数值评价,淘 阅读全文
posted @ 2024-06-24 09:27 月亮熊 阅读(15) 评论(0) 推荐(0)
摘要: 空心菱形箭头表示组合关系(强),父类毁灭子类不存; 实线空心箭头表示继承; 虚线空心箭头表示实现; 虚线普通箭头表示依赖; 实线普通箭头表示关联 时序图 推荐同步消息版本 一个激活块决定了连线是发送信息或响应。所有的发送信息必然激活新的激活块,有激活时间块也必然开始于某个发送信息 简单消息和同步消息 阅读全文
posted @ 2024-06-24 09:27 月亮熊 阅读(57) 评论(0) 推荐(0)
摘要: 职责链模式(Chain of Responsibility Pattern) 职责链是单向的结构,避免请求发送者与多个请求处理者耦合在一起。因此在链上传递直到接收者接收到为止 职责链每个具体处理者都会实现具体的方法来尝试处理请求。 命令模式-Command Pattern 迭代器模式(Iterato 阅读全文
posted @ 2024-06-24 09:26 月亮熊 阅读(8) 评论(0) 推荐(0)
摘要: 面向对象设计原则 1.配置文件可以不修改源代码就更换驱动程序 开闭原则 功能需求变化了,需求扩展,不改代码 2.A是B父类。C定义了A的对象obj为C的成员变量,C里还有一个setA的方法给obj变量赋值 里氏替换原则 通过父类的对象调用子类方法,可以替换父类 3.子类有新方法父类没有,父类变量去调 阅读全文
posted @ 2024-04-23 20:03 月亮熊 阅读(45) 评论(0) 推荐(0)
摘要: 设计模式的六大原则有:(有些设计模式天生就符合这些原则,而有些设计模式可能会在特定情况下牺牲一些原则以获得其他优势) Single Responsibility Principle:单一职责原则 Open Closed Principle:开闭原则 Liskov Substitution Princ 阅读全文
posted @ 2024-04-23 12:41 月亮熊 阅读(106) 评论(0) 推荐(0)
摘要: 在类图中,方法前的 M 和 F 标记表示方法的可见性。 M/+ 代表 public 方法,即可以从类的外部访问。 F/ 代表 private 方法,即只能在类的内部访问。 P/# 代表protect方法,其所在类的子类或者同一个包中的其他类访问,而不能被类的外部直接访问 工厂模式: 典型解耦模式 1 阅读全文
posted @ 2024-04-23 11:08 月亮熊 阅读(11) 评论(0) 推荐(0)