
设计模式
Raphaelkxy
只要有人的地方就有恩怨,有恩怨就会有江湖,人就是江湖。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式简介
设计模式简介 概述 设计模式不是知识点 设计模式是一种设计经验的总结 设计模式是用来解决某些场景下的某一类问题,是一种通用的解决方案 有了设计模式之后,可以让代码更容易被理解,确保了复用性、可靠性、可扩展性 一般用在非常庞大工程中 设计模式种类 设计模式现阶段一共23种,是内功心法,被分为三大类,用来解决不同的问题。设计模式应该慢慢积累,不应该快速学完,因为没有...原创 2019-05-25 11:56:08 · 160 阅读 · 0 评论 -
工厂方法模式
工厂方法模式 引入 之前,简单工厂,工厂是一个类,现在工厂是一个接口。 之前简单工厂,是一个大杂烩工厂,这是一个大工厂下,有许多子工厂,子工厂负责不同的种类的物品。 所有的改进,就是为了降低耦合度,实现高内聚。 描述:定义一个创建对象的工厂接口,让子类工厂分别实例化一个对象,工厂下设置子工厂。 角色:抽象工厂、具体工厂、抽象产品、具体产品。 示意图 代码实现 Trun...原创 2019-06-04 19:14:42 · 194 阅读 · 0 评论 -
原型模式
原型模式 作用:用原型实例指定创建对象的种类,并且通过复制(克隆)这些原型创建新的对象。 使用频率:不常用,使用场景非常少。 特点:通过克隆的方式创建对象。 境界:写代码的最高境界就是crtl+c/v,建立自己的技术平台,复用代码,修改代码。 关键点: 抽象原型类:它是声明克隆方法的接口,是所有具体原型类的公共父类,可以是抽象类也可以是接口,甚至可以是具体实现类。 具体原型类...原创 2019-06-16 16:34:45 · 1143 阅读 · 0 评论 -
简单工厂模式
简单工厂模式 引入 以客户买车为例,可去工厂买车,客户不会关注车是具体造出来的,他只关注成品的口碑和其他的参数。将客户和实际的生产隔离开来,客户并不知道也不在乎车是怎么造出来的。 代码示例 //下面是Customer类代码 public class Customer { public static void main(String[] args) { //创建一辆车...原创 2019-06-04 17:51:54 · 154 阅读 · 0 评论 -
建造者模式
建造者模式 建造者功能:创造事物 目标:使一个建造过程生成具有不同内容的对象。即复杂构建与其表示相分离。分离体现在代码上。 关键点: Product(具体产品):表示被构造的复杂对象 Builder(抽象构建产品):为创建一个产品对象的各个部件指定抽象接口 BuilderImpl(抽象构建的具体实现):实现Builder接口以构造和装配该产品的各个部件,定义并明确他所创建的表示。 D...原创 2019-06-16 11:42:05 · 158 阅读 · 0 评论 -
装饰器模式
装饰器模式 解释:在不改变原有对象的基础上,将功能附加到对象上(提供了比继承更有弹性的替代方案,属于结构性),符合开闭原则,追加而不修改。装饰器模式本身就是一个打扮的过程,面包和奶油的关系。比如用奶油、巧克力将面包打扮成蛋糕。 示意图 啤酒分为百威、青岛、燕京等品牌,在啤酒的基础上增加了品牌和价钱。现在用代码的形式来体现。 代码实现 Drink package decorate;...原创 2019-06-06 10:42:37 · 199 阅读 · 0 评论 -
代理模式
代理模式 解释 代理模式是指客户端(调用者)并不直接调用实际的对象,而是通过调用代理,来间接调用实际的对象。 举例一:明星经纪人:经纪人给明星服务,经纪人和明星绑定,属于可以看成一个整体,可以看成一个’明星’实体。如果粉丝有事,找经纪人就相当于找明星。经纪人就相当于明星本人。 示意图 代码实现 Star package proxy; //明星的抽象接口 public in...原创 2019-06-05 20:10:32 · 183 阅读 · 0 评论 -
观察者模式
观察者模式 解释:观察者模式又称为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察或者监听的目标发生情况,就会被监听者发现,从目标发生变化到观察者知道变化,实际上是由目标将将情况报给观察者的。主要理解发布-订阅模式。 关键点 使用场景 多用于实现订阅功能,例如微博的订阅、公众号订阅,只要发布消息,就会通知我们。这里微博、公众号是被观察者,我们是观察者,这...原创 2019-06-05 10:25:47 · 172 阅读 · 0 评论 -
UUID
UUID UUID简介 UUID 含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准。UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。 如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。 UUID组成 当前日...原创 2019-05-25 16:54:40 · 325 阅读 · 0 评论 -
策略模式Strategy
策略模式Strategy 提供的方法是抽象的,这些方法的具体实现是一个策略。 执行的流程固定,执行的结果由于提供了不同的策略而不同。 银行类 方法办理业务(人){ 欢迎用户进来 叫号 办理 离开 欢迎您下次再来 } //流程是固定的 //这里人是抽象类 接口,都不能产生对象。只能传递一个子类对象 人 = 子类; 人类 提供抽象 具...原创 2019-05-25 16:11:37 · 136 阅读 · 0 评论 -
缺省适配器模式(Adapter)
缺省适配器模式(Adapter) 定义一个规则,和尚可以吃斋 念经 打坐 撞钟 习武,但是鲁智深 鲁达 形态丑陋 面相凶顽 ,此人上应天星 心地刚直 虽时下凶顽 命中驳杂 久后却得清净 正果非凡 汝等皆不及他。从上面可以看出,定义的规则,鲁智深有超出范围地方,引入适配器,让不规范的规范化。 为什么要有适配器:接口定义要实现的方法,相当于规范,这些规范有些类暂时不需要实现,但是以后可能会需...原创 2019-05-25 14:11:26 · 809 阅读 · 0 评论 -
单例模式(singleton)
单例模式(singleton) 引入(设计模式要明白为什么要这样写,而不是记代码,代码很少,但记不住) 设计一个系统,比如叫做百度,开发搜索引擎。代码如下: class Baidu{ public void 搜索(String keyword){ } } 执行搜索 创建一个对象 写完上述代码,还不能做事情,需要调用搜索方法,才能开始搜...原创 2019-05-25 11:59:55 · 2281 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式 当生产产品等级不一样的时候,用抽象工厂模式。对工厂方法模式的单一性进行了改进。 示意图 描述:给客户一个接口,可以创建多个产品族中的对象。 角色:抽象工厂、具体工厂、抽象产品、具体产品 具体工厂是产品族 代码示例 Trunk_A: package menthod1; public interface Trunk_A { ...原创 2019-06-04 20:09:33 · 178 阅读 · 0 评论