设计模式
达龙猫
不要只做代码搬运工,思想+行动+坚持=成功
展开
-
设计模式-设计思想和原则
文章目录设计思想设计原则 设计思想 天天加班编程,编程到底都做的是什么? 撸代码,加班撸代码,写接口、写类、写方法 用设计模式或做设计的作用是什么? 指导、规定如何撸代码,如何来写接口、写类、写方法 为什么要做设计、用设计模式? 代码会变,为应对变化,为了以后方便扩展 做到以不变应万变,做一个会偷懒的程序员 软件界永恒的真理:不变的是变化! 设计模式思想中最重要的一点:区分变和不变...原创 2018-12-02 15:20:38 · 993 阅读 · 0 评论 -
设计模式-命令模式
文章目录介绍适用场景模式类图实例代码和策略模式区别 介绍 先设想一个场景,为系统设计一个命令行界面,用户输入命令来执行某项功能。系统的功能会不断添加,命令也会不断增加,如何将一项一项的功能加入到这个命令行界面?你可能会写出下面一段代码: public class Receiver{ public void receive(String command) { switch (command) ...原创 2018-12-09 15:45:37 · 139 阅读 · 0 评论 -
设计模式-单例模式
文章目录介绍立即加载/饿汉模式延迟加载/懒汉模式 介绍 单例模式可以确保在程序运行期间,只有一个对象实例 立即加载/饿汉模式 使用类的时候已经将对象创建完毕,常见的实现办法就是new实例化。从中文语境来说,有着急、急迫的意思,所以也称为饿汉模式 定义方式一: public class Singleton { private final static Singleton INSTANCE = ne...原创 2018-12-09 15:30:30 · 106 阅读 · 0 评论 -
设计模式-观察者模式
文章目录观察者模式介绍模式类图实例代码总结 观察者模式介绍 观察者模式也被称为发布-订阅(Publish/Subscribe)模式,它属于行为型模式的一种。观察者模式定义了一种一对多的依赖关系,一个主题对象可被多个观察者对象同时监听。当这个主题对象状态变化时,会通知所有观察者对象并作出相应处理逻辑。 模式类图 观察者模式定义了四种角色:抽象主题、具体主题、抽象观察者、具体观察者。 抽象主题(S...原创 2018-12-07 10:50:41 · 132 阅读 · 0 评论 -
设计模式-外观(门面)模式
文章目录外观模式介绍使用场景代码实例总结 外观模式介绍 外观模式,也成为门面模式,它隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。 适用方要完成一个功能,需要调用提供方的多个接口、方法,调用过程复杂时,我们可以再提供一个高层接口(新的外观),将复杂的调用过程向适用方隐藏。 演变方式: 简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个模式中,设计到3个...原创 2018-12-07 10:17:57 · 242 阅读 · 0 评论 -
设计模式-适配器模式
文章目录适配器模式介绍应用场景模式类图几种类别 适配器模式介绍 使用者依赖的接口与提供者的接口不匹配时,就加一层适配,而不改两端的代码 作用:将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本接口不匹配的两个类可以协同工作,别名为包装器Wrapper,比如220V交流电->适配器->12V直流电 核心思想:将已有的功能通过适配器变成当前需要的功能 应用场景 系统...原创 2018-12-07 09:32:47 · 106 阅读 · 0 评论 -
设计模式-模板方法模式
文章目录模式介绍应用场景模式类图 模式介绍 当我们设计一个类时,我们能明确它对外提供的某个方法的内部执行步骤,但是有一些步骤,不同的子类有不同的行为时,我们应该使用模板方法模式。 具体实现 有一个抽象模板类AbstractClass,其方法分为两类 基本方法:由子类实现的方法,并且在模板方法被调用 模板方法:可以有一个或几个,一般是一个具体方法,也就是一个框架,实现对基本方法的调用,完成固定的逻...原创 2018-12-09 08:18:02 · 122 阅读 · 0 评论 -
设计模式-代理模式
文章目录静态代理动态代理JDK动态代理CGLIB动态代理 定义 为其他对象提供一种代理以控制对这个对象的访问 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介作用 作用 不改变原来的代码,而增强原类对象的功能,主要是做方法的增强!!!可以选择前置、后置、环绕、异常处理增强 应用场景 Spring AOP、Spring事务管理… 静态代理 由程序员...原创 2018-12-03 22:58:45 · 804 阅读 · 0 评论 -
设计模式-责任链模式
文章目录责任链介绍模式类图实例代码总结 责任链介绍 为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推 责任链中,所有的处理者,都加入到这个链式中,一个处理完完毕后,转给下一个 步骤 抽象出责任接口,具体责任逻辑实现接口 根据处理...原创 2018-12-05 21:43:23 · 161 阅读 · 0 评论 -
代理模式-装饰模式
文章目录原创 2018-12-04 22:37:33 · 123 阅读 · 0 评论 -
设计模式-工厂模式
文章目录简单工厂模式工厂方法模式抽象工厂模式总结 简单工厂模式 大家都很喜欢吃面条,面条有很多种类,有泡面、兰州拉面、莆田卤面等。 抽象出一个面条接口类(产品接口类): public interface Noodles { void desc(); } 泡面实现类(具体产品实现类): public class PaoNoodlesImpl implements Noodles{ ...原创 2018-12-02 20:29:11 · 172 阅读 · 0 评论 -
设计模式-策略模式
文章目录应用场景实现方式类图代码实现 应用场景 策略模式侧重点是一个行为的多个算法的实现,可互换算法。 简单来说,不同类型走不同的算法,可以避免冗长的if else,实现横向扩展。 比如电商网站下单,不同订单有不同的算法,但它们有一个共同点:对订单进行计算处理。属于同一个行为,但是订单类型不同。 实现方式 可能我们首先想到的是使用if else,写出下面的方法: if (orderType.equ...原创 2018-12-02 16:44:22 · 194 阅读 · 0 评论 -
设计模式-状态模式
文章目录模式介绍实例模式类图代码实例总结 模式介绍 如果我们在编写代码的时候,遇到大量的条件判断的时候,可能会采用策略模式来优化结构,因为这时涉及到策略的选择,但有时候仔细查看下,就会发现,这些所谓的策略其实是对象的不同状态,更加明显的是,对象的某种状态也成为判断的条件 实例 一个类对外提供了多个行为,同时该类对象有多种状态,不同状态下对外的行为的表现不同,比如无人自动咖啡售卖机开发一个控制程序。...原创 2018-12-09 17:32:25 · 151 阅读 · 0 评论