设计模式
l_learning
这个作者很懒,什么都没留下…
展开
-
设计模式之组合模式
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。 从设计的角度看,组合模式涉及到三个角色: 抽象根节点:它是一个抽象接口,定义了算法; 具体节点:实现或继承自抽象根节点,完成具体算法操作; 客户端:客户类提出使用具体类的请求; 示例 以餐厅为例,餐厅有餐厅经理,厨师,服务员等员工,每一个员工都要工作,餐厅经理管理员工,可以将所有员工都设置为经理属性。 新建员工基类 public原创 2021-09-29 13:48:46 · 169 阅读 · 0 评论 -
门户模式
门面设计模式也叫外观设计模式 提供者向使用者提供一个门户,使用者只需访问这个门户就能获取数据,使用者不需要了解内部构成,运行流程等。对于开发者来说,使用门面模式,只需向用户提供他们想要的东西,隐藏不想让他们知道的东西。 例如:去快餐店吃东西一样,消费者只需要到前台小姐姐那里点餐,付款后前台小姐姐会给你一个号码,等菜做好后会叫号让你过去取餐,这样消费者接触的只有前台小姐姐,而饭菜怎么做出来的人们就不...原创 2019-12-12 21:49:46 · 1728 阅读 · 0 评论 -
命令模式
命令模式指将一个请求封装成一个对象,用不同的请求对客户进行参数化。 通过调用者调用接受者,接收者执行命令(调用者→接受者→命令) 以空调遥控器为例子 新建一个空调对象 public class AirConditioner { String host = "http://www.xxx.com/"; } 新建Command 抽象类 public abstract class Comman...原创 2019-12-09 23:27:04 · 121 阅读 · 0 评论 -
装饰器模式
装饰器模式不改变其结构的情况下,添加现有对象新的功能,属于结构型模式,也就是现有的类的一个包装。装饰器模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供额外的功能。 新建Skins接口 public interface Skins { void reload(); } 新建实现Skins接口的实体类Galen public class Galen implem...原创 2019-12-09 22:50:48 · 100 阅读 · 0 评论 -
享元模式
享元模式的核心思想就是将常用对象缓存起来,在使用的时候直接拿来用,不需要创建新的对象,节省创建对象消耗的资源,节省GC回收这些对象时消耗的资源。例如Integer类,JDBC的连接池就是享元模式思想。 下面以餐馆为场景模拟,将菜单与收钱码这种常用的对象缓存起来,面条得每次新鲜出锅不能重复吃哈,就新建对象????。 新建一个Stuff接口 public interface Stuff { String...原创 2019-12-09 20:30:29 · 96 阅读 · 0 评论 -
责任链模式
责任链设计模式就是按照链的顺序执行一个个处理方法,链上的每一个任务都持有它后面那个任务的对象引用,在自己这段执行完成之后,调用其后面的处理逻辑。 下面以地铁站乘车的场景来模拟 定义一个Check接口 public interface Check { public void check(); } 新建一个检查随身物品的类 public class InspectionArticles im...原创 2019-12-07 23:01:45 · 196 阅读 · 0 评论 -
模板模式
模板模式 模板模式就是将公用的常用代码封装成一个模板,只需要实现不同的业务需求的代码,然后和模板组合在一起,得到完整的逻辑。 常用的两种实现方式:继承和接口回调 继承方式 创建一个模板类,将模板代码封装 public abstract class Templet { public void doTemplet() { System.out.println("固定代码片段"); ...原创 2019-12-06 15:41:16 · 148 阅读 · 0 评论 -
工厂模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 详情请参考—菜鸟教程 新建一个Phone接口 public interface Phone { String getName(); ...原创 2019-07-14 19:17:23 · 108 阅读 · 0 评论 -
JAVA代理模式
意图:为其他对象提供一种代理以控制对这个对象的访问。 主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。 何时使用:想在访问一个类时做一些控制。 如何解决:增加中间层。 优点: 1、职责清晰。 2、高扩展性。 3、智能化。 缺点: 1、由于在客户端和真实主题原创 2019-04-02 21:28:19 · 136 阅读 · 0 评论 -
单例模式
单例模式是JAVA中最简单的设计模式之一,单例模式属于对象创建型模式。 作用:保证一个类只有一个实例,并提供一个访问它的全局访问点。 好处:保证对象在内存中仅有一个,减少内存开销。 常用于重量级对象,这个类创建对象是耗时,耗内存和复杂的。 饿汉式 立即创建,线程安全。在类加载时就会创建这个类的实例 1、创建唯一实列 public class SingletonClass{ private st...原创 2019-04-02 08:46:20 · 217 阅读 · 0 评论 -
策略模式
策略基本解释: ①谋略;手段:讲究策略。 ②与“战略”相对。为实现战略任务而采取的手段。既有稳定性,又有较大的灵活性,随着客观形势的变化而变化。 摘自 http://xh.5156edu.com/html5/z71m35j166307.html 如:去市中心,可以骑自行车,搭公交,搭地铁,驾车 策略模式:接口 + 实现类 如果你的if else像下面这样臃肿,快用策略模式重构它 public ...原创 2019-04-07 14:11:10 · 143 阅读 · 0 评论