随笔分类 - 设计模式
进阶之路_为了能够更加深刻理解面对对象,学习Java中的设计思想
摘要:一、目录概要 二、问题探究 需求:假设要设计一个电脑商场管理系统的某个模块设计,电脑分为品牌和类型两个纬度,我们应该怎么解决? 按照初学者的思路,利用继承就能简单粗暴的实现,那我们来看下这种思路的设计类图。 从电脑纬度划分 从品牌纬度划分 问题1:假设我们的系统按照上述思路设计,当我们新增一个品牌的
阅读全文
摘要:一、引入话题-发散思考 1、如果你是安卓开发工程师,是否经常遇到给所有的用户或者特定的用户推送消息的业务场景呢?例如:我曾经做的一款APP就是用极光推送一个消息,下载该APP的用户都能收到消息提示。 2、如果你了解zookeeper分布式调节框架?假设一个集群有1000台机器Master-Slave
阅读全文
摘要:应用场景 假设现在我们要设计DNF中的人物角色(鬼剑士、神枪手、魔法师、圣骑士、格斗家)。然而,利用面对对象的思想,必须先从实体入手,每一个角色都包含各种装备、武器、配饰,这些就当做要建造的零件,然后把装备零件组装起来,那么就是最终人物角色的能量值,然后它就将造成不同的伤害。 回忆过程:假设要创建一
阅读全文
摘要:概述 什么是工厂方法?什么是抽象工厂? 工厂方法是指工厂生产产品,而抽象工厂是生产产品系列。例如,工厂方法是只生产运输工具比如马车、公共汽车、自行车,而抽象工厂生产轮胎、螺丝钉交通工具零件。 工厂方法模式定义了一个创建对象的接口,但由子类决定实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 抽象
阅读全文
摘要:克隆是什么?它的产生背景? 当new的对象是多例的时候,new对象将会不断占据内存。特别是消耗内存的大对象,比如数据库连接等。平时运用的不多,只在spring等容器有见过,此处不多赘述,了解即可。 浅克隆与深克隆是什么意思?通过案例逐步探讨。 public class Star implements
阅读全文
摘要:问题来源 什么是单例?它的运用场景是什么? 单例模式是指保证在系统中只存在某类唯一对象。运用场景随处可见,例如工具类、Spring容器默认new对象等。 单例模式有几种实现方式? 饿汉式、懒汉式、双重检查锁式、内部类式、枚举式。 推荐使用方式? 饿汉式、内部类式。 饿汉式 饿汉式顾名思义饿,那么当应
阅读全文
摘要:创建型模式 1、抽象工厂模式(Abstract factory pattern): 提供一个接口, 用于创建相关或依赖对象的家族, 而不需要指定具体类.2、生成器模式(Builder pattern): 使用生成器模式封装一个产品的构造过程, 并允许按步骤构造. 将一个复杂对象的构建与它的表示分离,
阅读全文
摘要:目录 概述与模型 1、概述 含义:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 说明:这是一种补救措施,在最开始设计的时候不建议使用这种设计模式。 分类:类适配器、对象适配器。类适配器就是采用继承的方式,对象适配器采用组合的方式,源于Java里面只支持单继承,
阅读全文
摘要:开门见山 目录 概述与模型 1、概述 含义:动态地将责任附加到对象上。若要拓展功能,装饰者提供了比继承更有弹性的替代方案。 初衷:需要动态为某一个类拓展。通常我们会使用继承,但是继承的话,会产生很多子类、乱而杂,不便于管理。 2、模型 应用场景描述 场景描述:假设我们家刚砌好一座房子,墙面全是光头墙
阅读全文
摘要:目录 概述与模型 1、概述 含义:控制对对象的访问。 作用:详细控制某个(某类)某对象的方法,在调用之前做前置处理,调用之后做后置处理,从而实现将统一流程代码放在代理类中处理。 举例:我们在学习JDBC的时候,在批量处理的时候遇到过事务。流程:设置提交方式为手动提交-开启事务-批量处理-关闭事务-设
阅读全文
摘要:一、目录概要 二、问题探究 需求:假设要设计一个电脑商场管理系统的某个模块设计,电脑分为品牌和类型两个纬度,我们应该怎么解决? 按照初学者的思路,利用继承就能简单粗暴的实现,那我们来看下这种思路的设计类图。 从电脑纬度划分 从品牌纬度划分 问题1:假设我们的系统按照上述思路设计,当我们新增一个品牌的
阅读全文

浙公网安备 33010602011771号