![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 56
Zhongyi_Li
这个作者很懒,什么都没留下…
展开
-
设计模式之状态模式
状态模式没有我们想象的那么简单,好多文章说状态模式可以用来消除if else,我理解需要确定范围,我们只能在一定范围内消除if else。还需要说明的是:状态模式有两种使用场景,一种就是简单的选择一种状态执行,一种是需要进行状态的流转执行。使用状态模式(state pattern)替代if else设计模式之状态模式设计模式之状态模式的理解运用不会状态机?不知道状态模式?不会利用它来减少if else并解耦?来看看这篇文章!!!...原创 2022-02-23 10:49:43 · 142 阅读 · 0 评论 -
网络传输的数据为啥需要encode
理解网络传输对数据类似是有要求的,只有字母数字和极少的字符可以传输,其他字符都不行,所以得把不能传输的字符编码成能传的,具体怎么编码还得依靠字符集,一般是utf-8。得后台收到传输来的字符串,得依靠同类型的字符集解码。参考为什么要对url进行encode关于URLEncoder编码的问题...原创 2021-02-24 11:25:19 · 600 阅读 · 0 评论 -
设计模式之单例模式
单例模式是时间开发中常用到的设计模式,现在推荐使用“延时加载占位类”的模式设计单例,之前流行的双重检查加锁(Double Check Lock)的模式是有缺陷的。延时加载占位类其实就是静态内部类,为啥采用静态内部类的方式既能实现延时加载又能保证线程安全呢?延时加载,是因为内部类,不论是静态内部类还是非静态内部类,都是需要时才会加载,只使用外部类时不加载。线程安全是由JVM保证的,jvm在加载类...原创 2020-03-19 22:36:05 · 125 阅读 · 0 评论 -
设计模式
一、工厂模式工厂模式实现了调用者和创建者的分离,实现了更好的解藕。我们进一步说明一下这句话,我们一般在写代码的时候,比如在A类里面要调用B类的方法,我们会在A中new一个B对象,然后调用B的方法,这个就是调用者和创建者没有分离,都是A。工厂模式可以做到分离,A依旧是调用者,工厂类中创建B,工厂类是创建者。工厂模式有三种表现形式:简单工厂模式、工厂方法模式和抽象工厂模式。经常使用的是简单...原创 2020-08-14 17:28:14 · 111 阅读 · 0 评论 -
设计模式之观察者模式(Obsever)
(1)观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让他们能够自动更新自己。(2)观察者模式的组成抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个借口,可以增加和删除观察者角色。一般用一个抽象类或接口来实现。抽象观察者角色:为所有具体的原创 2013-01-14 15:09:33 · 1439 阅读 · 2 评论 -
设计模式之策略模式(strategy pattern)
1. 定义定义了一组算法,将每个算法都封装起来,使它们之间可以互换。策略模式可以使这些算法在客户端调用它们的时候互不影响的变化。2.策略模式(Strategy Pattern)中体现了两种非常基本的面向对象设计的原则封装变化的概念编程中使用接口,而不是对接口的实现3.策略模式的意义策略模式是开发人员能够开发出由许多可替换的部分组成的软件,并且各个部分之间是弱连接原创 2012-09-04 10:18:33 · 930 阅读 · 0 评论 -
设计模式之观察者模式(Obsever)2
不想进行文字叙述,相关叙述网上或者书上很多,可以自行查阅学习。本文只是贴一些代码,代码是最好的文字。需要说明的是,本文只是说明怎么使用JAVA提供的观察者模式。1、最简单最好理解的使用被观察者(主题角色)package com.sailang.observerpattern;import java.util.Observable;public class Watched ext原创 2014-01-05 21:32:07 · 815 阅读 · 0 评论