设计模式
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 本教程将通过 Java 实例,一步一
小炫剑指大厂
主要为应届生提供校招或者实习的经验,以及技术博文。
欢迎关注公众号:小炫剑指大厂
展开
-
设计模式(九)观察者模式
观察者模式的定义: 在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。大白话: 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。举个例子,如订阅了天气,那么天气突发,就会发通知到你的手机上面。记得是天气发现了变化,才发通知的。这里我直接用java提供的观察者模式实现1.建立目标对象...原创 2019-05-29 10:45:00 · 1602 阅读 · 0 评论 -
设计模式(八)模板方法模式
它的定义为:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。说的通俗一点,就是为子类设计一个模板以便于子类复用里面的方法。为了避免子类恶意修改方法的实现细节,一般模板方法模式都会在方法上加final。我们以泡茶和冲咖啡为例子。 步骤1 将水煮沸 boilWater(); /...原创 2019-05-26 16:19:39 · 1538 阅读 · 1 评论 -
设计模式(七)策略模式
策略模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。现实例子,旅行出游的方式有很多种,地铁,骑车……每一种都是一个策略。我们用鸭子的例子1通过分离变化得出的策...原创 2019-05-25 16:54:26 · 1562 阅读 · 1 评论 -
设计模式(六)责任链模式
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。举个例子,有这样关系销售员-销售组长-经...原创 2019-05-25 10:38:21 · 1563 阅读 · 1 评论 -
设计模式(五)适配器模式
适配器模式将一个类的接口,转换成客户期望的另外的一个接口与。使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。如目标接口是二插头,而被适配类是三插头,那么适配器就是三插转二插。组合方式package com.immoc.pattern.adapter;/* * 三相插座接口 */public interface ThreePlugIf { //使用三...原创 2019-05-24 21:16:49 · 1532 阅读 · 0 评论 -
设计模式(四)工厂模式
简单工厂的定义:提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类package com.sunny.project;/** * 发型接口 * @author Administrator * */public interface HairInterface { /** * 画图 */ public void dra...原创 2019-05-24 17:44:15 · 1529 阅读 · 0 评论 -
设计模式(三)单例模式-饿汉模式与懒汉模式
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。简单的说,一个类只能有一个对象,如工具类等等,只要有一个就足够了。饿汉模式/* * 单例模式Singleton * 应用场合:有些对象只需要一个就足够了,如古代皇帝、老婆 * 作...原创 2019-05-24 16:03:42 · 1573 阅读 · 0 评论 -
设计模式(二)代理模式-动态代理
对代理而言,静态代理是一一对应的,也就是说。如果有n个类且操作相同,那就要创建n个代理类。这是非常繁琐的事情。动态代理是在运行时期生成的。我们把对象给动态代理,他就会帮我们执行。本文讲的是jdk动态代理还是用这段代码package com.imooc.proxy;public interface Moveable { void move();}package co...原创 2019-05-24 15:13:29 · 1529 阅读 · 0 评论 -
设计模式(一)代理模式-静态代理聚合方式和集成方式比较
代理模式是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。比如买火车票,你一般不直接去火车站购买,而是到附近的售票点。售票点其实就是代理。静态代理要实现的接口public interface Moveable { void move();}package com....原创 2019-05-24 10:10:54 · 2247 阅读 · 0 评论