- 博客(8)
- 收藏
- 关注
原创 组合模式、
理解 在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包。对这些简单对象与复合对象的处理,如果用组合模式来实现会很方便。 概念 有时又叫作整体-部分模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。 特点 组合模式一般用来描述整体与部分的关系,它将对象组织到树形结构中,顶层的节点被称为根节点,根节点下面可以包含树枝节点和叶子节点,树枝节点下面又可以包含树
2021-10-31 23:00:36
157
原创 建造者模式
场景 构建一个产品或者产品族使用抽象工厂,但是这些产品需要组装呢?就是在构建或称比较复杂对象时,有很多的步骤需要处理。(建造者模式和工厂模式搭配) 本质 分离了对象子组件的单独构造(Build来负责)和装配(Director负责),从而构造出复杂的对象,这个模式适用于:某个对象的构建过程复杂。 实现了构建和装配的解耦,不同的构建器,相同的装配,也可以做出不同的对象,相同的构建器,不同的装配,也可以做出不同的对象。实现了构建算法、装配算法的解耦,实现了更好的复用。 public class AirShip
2021-10-31 19:47:06
157
原创 迭代器模式
目标 迭代器内部结构 场景 提供一种遍历聚合对象的方式(游标模式) 概念 聚合对象:存储数据(List集合) 迭代器:遍历数据 解决问题 链表的创建和遍历都放在同一个类中,不利于程序扩展(更换遍历方法),自己实现遍历,数据不安全(聚合类内部暴露)且代码复用。 //迭代器接口 public interface MyIterator{ void first(); //将游标指向第一个元素 void next(); //将游标指向下一个元素 boolean hasNext();
2021-10-29 17:34:36
128
原创 Optional
概述 是一个对象容器,主要解决空指针异常(NullPointerException) 特点 提醒用户注意该对象可能是null 简化了if-else 示例 String isocode = user.getAddress().getCountry().getIsocode().toUpperCase(); 任何访问对象方法或属性的调用都可能导致 NullPointerException。 为了不触发空指针异常,需要在每一个值之前对其进行检查 if (user != null) { Addres
2021-10-26 17:39:45
115
原创 枚举enum
枚举和普通类的区别 枚举不能new创建对象,没有子类。 枚举的构造方法私有。 为什么要有枚举 单例模式有反射漏洞,可以通过反射创建。枚举解决,不能new,不能用反射。防止创建多个实例 注意点 构造器私有,如果传参,那么成员ONE(1)也有对应参数 也可以有抽象方法, 代码 public enum EnumTest{ //成员/对象 //数据字典 //两种表达方式 //男女/12 //两个实例(ONE、TWO)实例名称就是ONE、TWO //放在代码首部 ONE(val:1),{ @Overri
2021-10-24 22:02:16
344
原创 结构性模型
结构性模型 核心作用 整个程序结构实现松耦合。扩大整体的类结构。用来解决更大的问题。 分类 适配器模式、代理模式、桥接模式、装饰模式、组合模式、外观模式、享元模式。(框架、产品中用到的会更多) 适配器模式(adapter): 核心本质 将一个类的接口转换成客户希望的另外一个结构。使得原本接口不兼容而不能在一起工作的类可以一起工作。 模式中的角色 目标接口:客户期待的接口。也可以是类。 需要适配的类:需要适配的类。 适配器:通过包装一个需要适配的对象,把原接口转换成目标接口。 步骤: 定义适配器 (定义一个
2021-10-24 16:38:36
369
原创 设计模式(单例、工厂)
设计模式 创建者模式(帮我们创建对象): 单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式 结构型模式: 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式 行为型模式: 模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式 创建者模式: 建一个鼠标,汽车,电脑,生产环境都不一样,所以创建者模式多种多样。 单例模式: 保证一个类只有一个实例。并且提供一个访问该实例的全局访问点(提供一个方法来访问这个对象)。
2021-10-22 18:04:06
226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅