
设计模式
上古伪神
喜欢撸铁的程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式之装饰者模式
【导读】在很多场景中,已有核心组件,此时需要对组件的功能进行扩展,此时就需要用到装饰者模式,例如建房子,核心组件就类似于房屋的架构,想要进行装修,就得聘请装修团队。一、定义在不改变原有对象的基础之上,将功能附加到对象上,也就是说是继承的补充,接口与接口之前是有层次关系的。也就是说新增功能需要创建另外一个对象,此对象功能实现需要依赖原有对象的功能。二、实例还在读大学的时候,每次从健身房出来就会买一个炒粉,有时会加一个鸡蛋,有时会加一根香肠,加上小米辣,别提多想了,怀念!此时炒粉就是一个原创 2020-10-30 23:14:05 · 116 阅读 · 0 评论 -
设计模式之门面模式
学校的学生信息相关系统大家都用过,比如门户网、教务系统、图书管理系统等,一般需要用到某个系统,需要单独去登录,比如同时想去门户网和教务系统查询信息,需要在两个网站都进行登录。此时需要有一个统一用户管理系统,登录了此系统之后,想看其他网站就无需再次登录,这就是门面模式的例子。门面模式属于结构型模式。类似与在平时给前端提供一个接口,接口里面调用了很多其他的服务。一、定义定义了一个高层接口,包含了对各个子系统的引用,客户端可以通过它访问各个子系统的功能。二、实例比如去购物网站下单的时候,会涉及原创 2020-10-28 22:22:29 · 248 阅读 · 0 评论 -
设计模式之原型模式
有些场景中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效。比如王者里面的小兵,只需创建一个小兵的原型,之后就只需要进行克隆复制就行了。一、定义原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型类必须实现cloneable接口,实现clone方法。二、实例创建一个小兵的原型public class BatmanPrototype implements Cloneable{ //横坐标原创 2020-10-25 22:22:19 · 92 阅读 · 0 评论 -
设计模式之单例模式
今天来说一下同样属于创建型模式的单例模式,相信这个模式普遍都清楚,因为平时在编码的时候都会进行相应的使用,我这边就当做日志记录一下。免得以后忘了还得去搜,我发现我记忆里非常差,很多东西很快就忘记了,年纪大了没办法。一、定义保证一个类仅有一个实例,并提供全局访问点。就是打死也不会生成第二个实例。一般用在工具类上,可以降低内存消耗二、实例单例模式有几种,分别是饿汉式、懒汉式、静态内部类单例以及枚举类单例。(1)饿汉式顾名思义,饿汉式就是整个项目在启动的时候进行创建。此时可以使用静态代码块原创 2020-10-20 22:46:44 · 116 阅读 · 0 评论 -
建造者模式还能这么用
一、定义将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。类似组将一台电脑,有主机、屏幕、鼠标、键盘等,你将这些组件的型号给组装店说好,他就会根据你的需求组装电脑,但是你不会看见具体的组装过程。建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。二、实例像上面说的电脑组装实例,就有三个对象,一个是电脑,一个是组装者,一个是客户。电脑对象:public class C原创 2020-10-18 21:29:44 · 193 阅读 · 0 评论 -
【设计模式-工厂相关模式】
工厂相关模式有两种,分别是:(1)工厂方法模式(2)抽象工厂模式接下来分别说下这两种工厂模式:一、工厂方法模式(1)定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。其实就是专职专产,比如某条产品线就只生产一种产品。(2)实例:比如车辆厂商有保时捷、法拉利等,他们的厂就专门生产一种品牌的车,这是就会有两个抽象的对象,一个是车,一个是厂,什么厂就生产什么样的车。车对象:1、车的抽象对象public abs原创 2020-10-15 22:13:34 · 144 阅读 · 0 评论