随笔分类 - java 设计模式
摘要:创建型: 单例 , 工厂 结构型: 适配器 欧洲旅行充电头转换, 笔记本电脑充电需求在欧洲. 我的笔记本电源接口是固定的, 而且我有充电需求. 在欧洲,政府提供的插座是固定的(跟国内不一样), 所以必须需要一个适配器协调一下. 代理 经纪人, 经济人要加代理费,歌星,跳舞等明星只管 performa
阅读全文
摘要:红绿灯, 根据不同的状态有不同的行为 类似 策略模式, 一个接口封装的是策略,然后不同的策略(类)实现这个接口 这里是, 一个接口封装的是状态,然后不同的状态(类)实现这个接口 参考 设计模式重点版 常用 10 中的. 用于解决系统中复杂对象的状态转换, 需要多外输出不同的行为 主要对象 Conte
阅读全文
摘要:策略模式比较简单 只是一堆具体的策略类, 共同实现了一个策略接口, 这样这些具体的策略类可以根据不同情况,动态的实现. 可以参考 设计模式重点版 (常用10个)
阅读全文
摘要:将动作的请求者 和 执行者 解耦. 将军命令士兵打仗, 但是将军并不知道是哪个士兵. 所以 命令本身也是一个对象, 一个类. 这个命令, 进攻, 可以同时传递命令给 弓箭手, 刀斧手 等各种士兵进行进攻. 所以等于说把这个"命令" 本身抽象成一个类. 这样, 将军只需要面对的是“命令”对象来发布,而
阅读全文
摘要:群体广播信息时, 就可以用到观察者模式 生产者(WeatherData天气变化) -> 服务方法(WeatherData, 理解为气象站) -> 观察者(订阅者Observer)(用一个列表维护当前的观察者) 天气预报举例: 气象站检测, 然后通过公告发布出去 需要一个开放性的 API, 便于第三方
阅读全文
摘要:模板模式, 我们有一个模板函数在抽象的模板类里, 作为统一的被调用接口. 这个函数里是我们想要执行的步骤, 这样, 外界只要调用这个接口, 就可以完成任务(不用分部调用). 还是已煮茶和煮咖啡为例子. package com.leon.design; public class ClientTempl
阅读全文
摘要:这 4 个模式很相近 适配器模式:包装另一个对象,并提供不同的接口。外观模式:包装许多对象,以简化他们的接口。装饰者模式:包装另一个对象,并提供额外的行为。(额外的行为可以是灵活的多个装饰器(class)完成的, 也就是可以 n:1)代理模式:包装另一个对象,并控制对它的访问. (只能 1:1 的代
阅读全文
摘要:举例制造Pizza的工厂 简单工厂模式(一般用这种就可以了) 工厂类里, 通过 if else 来创建不同的具体类. 多个品牌只有一个工厂,通过 if else 来判断制造什么样的Pizza(海鲜Pizza, 榴莲Pizza) package com.leon.design; public clas
阅读全文
摘要:1. 抛出问题, 先代码实现(非设计模式方式) 2. 具体设计模式说明和解释(生活应用场景) 项目中读取文件的类, 做数据库连接的类 3. 代码实现 饿汉式 :个人推荐, 简单, 安全. 这种方式可以保证线程安全(因为类加载时, 直接创建了实例, JVM 可以保证这个实例是线程安全的, 所以getI
阅读全文
摘要:设计模式: 对软件编程中普遍存在的问题的整体解决方案. (面向对象编程), 为了将来更好的扩展(修改) 后续所有的 Client 本身不是设计模式的一部分, 它是客户,调用这个设计模式. 为什么要用设计模式 1) 代码重用性 (相同功能的代码, 不用重复编写) 2) 可读性(编程规范性,便于其他程序
阅读全文
摘要:创建型(创建对象): 2 个 (工厂模式, 单例模式) 结构型: 6 个 (适配器模式, 组合模式, 装饰者模式, 代理模式, 外观模式, 桥梁模式) 行为型: 8 个 (中介者模式, 策略模式, 模板模式, 观察者模式, 迭代器模式, 责任链模式, 命令模式, 状态模式) 1. 工厂模式 提供一个
阅读全文