![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Lidisam
一路有TA同行
展开
-
设计模式---工厂模式(PHP)
工厂模式主要作用提供统一的接口,并且将类分为工厂类和工具类 以工厂类作为统一接口调用各工具类,工厂类的函数是静态函数,且应用了可变类 <?php //腾讯类--工具类 class Tecent { public function show() { echo "腾讯类实例化了"; } } //百度类--工具类 class Baidu { public fu原创 2015-08-29 19:50:20 · 626 阅读 · 0 评论 -
设计模式之适配器模式
前提:适配器模式有三种-类、对象、接口适配器。(暂时没想到更啥,先更着以前写的适配器模式吧。。。) https://www.cnblogs.com/V1haoge/p/6479118.html 使用场景:假设手上有一个ps2插头的设备,但主机对外是usb,这时候需要弄个转换器,将ps2转为usb插头。 Java中使用场景:java中的I/O流将字节流转为字符流,如InputSt...原创 2019-04-14 21:25:40 · 157 阅读 · 0 评论 -
设计模式之责任链模式
http://www.runoob.com/design-pattern/chain-of-responsibility-pattern.html 前提:含Chain管理类、抽象处理者类、具体处理者类。行为模式,当前类引用下游形成一条链。(暂时没想到更啥,先更着以前写的责任链模式吧。。。。) 另一种方法:Filter接口、FilterA实现类、FilterB实现类、FilterChain有个...原创 2019-04-14 21:23:39 · 166 阅读 · 0 评论 -
设计模式之状态模式
https://www.cnblogs.com/java-my-life/archive/2012/06/08/2538146.html 前提:含环境类、状态接口、具体状态类。将每个状态实现为一个对象即行为。(ps: 没想到更啥,先更着以前写的状态模式吧。。。。) 1 状态接口: public interface VoteState { /** * 处理对...原创 2019-04-14 21:21:41 · 163 阅读 · 0 评论 -
设计模式之单例模式
单利模式的写法 1懒汉单利模式 2 饿汉单利模式(线程安全)一般直接用过饿汉即可,要求懒加载采用静态内部类 publicstaticsynchronized Singleton getInstance() { 3 双重检验锁模式 避免多个线程进入同步块,volatile可避免重排序。如先分配instance内存在调用构造函数顺序颠...原创 2019-04-14 21:18:46 · 153 阅读 · 0 评论 -
设计模式之桥接模式
前提:含抽象类、扩展接口、具体实现类、具体扩展类。使用组合的方式替代继承。(ps:最近想不到更新啥,就先更着以前呆的桥接模式) 区别:桥接模式与策略模式均采用组合的方式,区别在于可将策略模式当成桥接模式的子集,去掉桥接模式的扩展接口,那桥接模式与策略模式就基本一致,都是拥有一个使用接口的对象聚合某个接口后调用接口具体的实现类。 参考:https://blog.csdn.net/sjtu...原创 2019-04-14 21:08:58 · 193 阅读 · 0 评论 -
设计模式之观察者模式
参考自:https://www.cnblogs.com/luohanguo/p/7825656.html 前提:主要四个类(抽象被观察者(发布者)、抽象观察者(订阅者)、具体被观察者、具体观察者)(ps:好久没更新了,不知道更啥,先更着观察者模式。。。) 用途:微信公众号消息推送 1 抽象被观察者接口: public interface ObserverAble { ...原创 2019-04-14 21:02:46 · 221 阅读 · 0 评论 -
设计模式之策略模式
参考:https://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html 前提:分为三部分(环境、抽象策略类、具体策略类),定义一组算法,并切封装这些算法继承自同一父类并可相互替换。(ps:好久没更新了,不知道更啥,先发着策略模式。。。) 应用场景:如折扣的计算可分离开来。 1 环境类: publi...原创 2019-04-14 20:59:47 · 188 阅读 · 0 评论 -
设计模式之装饰者模式
前提:装饰者和被装饰者类均继承自统一接口。装修者模式不控制被装饰者类,只是在方法属性上的叠加。增强对象行为。(ps:好久没更新,不知道更啥,先发着设计模式。。) 1 公用接口: public interface Superman { String getWeapon();//武器 } 2 被装饰者类(咸蛋超人-刚出山的没装备) public cla...原创 2019-04-14 20:57:50 · 158 阅读 · 0 评论 -
设计模式之代理模式
前提:代理类和被代理类均继承自统一接口。代理模式是使用代理类去控制被代理类的方法。(ps:好久没更新,不知道更啥,先发着以前写的。。。) 静态代理、JDK动态代理、Cglib动态代理区别(面试题): 静态代理需要目标对象、代理对象均实现同一接口。JDK动态代理仅需目标对象实现接口。Cglib动态代理中目标对象、代理对象均不用实现接口,其底层通过ASM转换字节码来生成目标对象子类,从而...原创 2019-04-14 20:55:13 · 149 阅读 · 0 评论 -
Laravel Repository 模式-让你控制器更易读
Laravel Repository 模式 原文 http://www.cnblogs.com/Stone--world/p/4756043.html Repository 模式 为了保持代码的整洁性和可读性,使用 Repository Pattern 是非常有用的。事实上,我们也不必仅仅为了使用这个特别的设计模式去使用 Laravel ,然而在下面的场景下,我们将转载 2015-12-18 20:11:55 · 1510 阅读 · 1 评论 -
设计模式三之装饰者模式
注:本文主要思想来自《HeadFirst 设计模式》 定义:动态地将责任附加到对象上,若要扩展对象,装饰者模式提供了比继承更弹性的替代方案 ->遵循开放-关闭原则(对拓展开放,对修改关闭 即不能修改原先的代码进行拓展) 我这里举咸蛋超人的例子说明: 怪物降临,咸蛋超人从天而降。然而此时的咸蛋超人是刚进新手村的,所以战斗力只有5 public interface Superm原创 2016-02-01 14:06:50 · 672 阅读 · 0 评论 -
设计模式二之观察者模式
定义 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。就是发布者–订阅者的关系。 实例 我这里举在报刊订报的例子 订报需要 角色:发布者(报社)、订阅者(消费者) 业务处理: 发布者:注册(订报)、取消(退订)、通知(送报) 订阅者:显示内容(看报)、更新内容(查看报箱) 代码实现 上面我们大概写了相关的角色与行为,想在将他们解析原创 2016-01-30 11:47:02 · 576 阅读 · 0 评论 -
设计模式一之策略模式
定义: 定义算法族并封装,可相互替换。让算法的变化独立于使用算法的客户。 这里就举超人的例子来说明 假定一个超人类 Super 是生产各种超人的 public abstract class Super{ //超人的飞行 void public Fly(){ System.out.println("我是超人我会飞"); } //超人的每个技能都不相同,这里提供多态 p原创 2016-01-21 09:40:16 · 562 阅读 · 0 评论 -
设计模式之一些其他知识
1 组合和继承有何区别?(暂时没想到更啥,先更着之前写的东西吧。。。) - 继承:is-a关系。实现对父类的扩展,但是继承的 -- 缺点:父类细节对子类可见;高耦合 - 组合:has-a关系。把组合类的对象加入到当前类中作为一个成员变量。 -- 优点:通过所包含的对象去调用那个类的方法,即所包含对象内部细节对当前对象不可见;低耦合,修改被包含类仅需要修改那个类(不影响当前类);运...原创 2019-04-14 21:27:44 · 175 阅读 · 0 评论