![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 66
可乐加冰可乐
用代码改变生活
展开
-
观察者模式
观察者模式定义使用场景主要角色SubjectConcrete SubjectObserverConcrete Observer优点缺点 定义 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新 使用场景 关联行为场景,需要注意的是关联行为是可拆分的,而不是“组合”关系 事件多级触发场景 跨系统的消息交换场景,如消息队列、事件总线处理机制 主要...原创 2020-03-27 21:24:28 · 129 阅读 · 0 评论 -
面向对象的三个基本特征
面向对象的三个基本特征封装性继承性多态性 封装性 令外部访问者不能随意存取对象的内部数据 继承性 特殊类拥有一般类的全部数据和操作 多态性 在父类中成员变量和成员函数被子类继承后,可以具有不同的状态或表现行为 ...原创 2020-03-14 16:50:31 · 76 阅读 · 0 评论 -
命令模式
命令模式定义使用场景 定义 将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化;对请求排队或记录请求日志,以及支持可撤销的操作 使用场景 需要抽象出待机执行的动作,然后以参数的形式提供出来 在不同的时刻指定、排列和执行请求 需要支持取消操作 支持修改日志功能 需要支持事务操作 ...原创 2020-03-14 16:41:24 · 135 阅读 · 0 评论 -
责任链模式
责任链模式定义使用场景 定义 使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止. 使用场景 多个对象可以处理同一请求,但具体由哪个对象处理则在运行时动态决定 在请求处理者不明确的情况下向多个对象中的一个提交一个请求 需要动态指定一组对象处理请求 ...原创 2020-03-14 16:37:24 · 73 阅读 · 0 评论 -
状态模式
状态模式定义使用场景 定义 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 使用场景 一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为 代码中包含大量与对象状态有关的条件语句 ...原创 2020-03-14 16:26:03 · 95 阅读 · 0 评论 -
策略模式
策略模式定义使用场景 定义 定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换. 让算法独立于使用它的客户而独立变化. 使用场景 针对同一类型问题的多种处理方式,仅仅是具体行为有差别时 需要安全地封装多种同一类型的操作时 出现同一抽象类有多个子类,而又需要使用if-else或者switch-case来选择具体子类时 ...原创 2020-03-14 15:59:10 · 71 阅读 · 0 评论 -
抽象工厂方法模式
抽象工厂方法模式定义四到模块 定义 为创建一组相关或者是相互依赖的对象提供一个接口,而不需要指定它们的具体类. 四到模块 虽然抽象工厂方法模式的类繁多,但主要还是分四类: AbstractFactory:抽象工厂角色 ConcreteFactory:具体工厂角色 AbstractProduct:抽象产品角色 ConcreteProduct:具体产品角色 ...原创 2020-03-14 15:54:26 · 90 阅读 · 0 评论 -
工厂方法模式
工厂方法模式定义四大模块 定义 定义一个用于创建对象的接口,让子类决定实例化哪个类 四大模块 抽象工厂,其为工厂方法模式的核心 具体工厂,其实现了具体的业务逻辑 抽象产品,是工厂方法模式所创建的产品父类 具体产品,为实现抽象产品的某个具体产品的对象 ...原创 2020-03-14 15:50:43 · 71 阅读 · 0 评论 -
原型模式
原型模式定义使用场景 定义 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象 使用场景 类初始化需要消耗非常多的资源 通过new产生一个对象需要非常繁琐的数据准备或访问权限 一个对象需要提供给其他对象访问,而且各个调用者可能多需要修改其值时 ...原创 2020-03-14 15:44:48 · 84 阅读 · 0 评论 -
Builder(建造者)模式
Builder模式Builder模式定义Android源码实例 Builder模式定义 一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。 Android源码实例 Dialog的显示 Dialog中通过getSystemService()获取WindowManager,然后通过Window对象的setWindowManager()将Win...原创 2020-03-14 15:13:14 · 159 阅读 · 0 评论 -
面向对象的六大原则
面向对象的六大原则单一职责原则 Single Responsibility Principle开闭原则 Open Close Principle里氏替换原则 Liskov Substitution Principle依赖倒置原则 Dependence Inversion Principle接口隔离原则 Interface Segregation Principe迪米特原则 Law of Demet...原创 2020-03-14 10:46:22 · 103 阅读 · 0 评论