PattermDesign
Gwen小苏
作为一只大四的狗狗,现在才开始努力,真的太差劲。刚刚开学,做了班长,在学java,打算在累的时候可以找个地方把心里的事情写下,算是一种仪式吧,共勉~
展开
-
#大话设计模式之适配器模式#
现在有一个需求:为不懂英语的姚明设置一个翻译球员父类(集合了球员必备的名字与方法等属性)package AdapterPattern;public abstract class Player { String name; public Player(String name) { // TODO Auto-generated constructor st...原创 2017-11-23 12:02:28 · 168 阅读 · 0 评论 -
spring单例在高并发下可能出现的错误
spring单例在高并发下可能出现的错误: 首先,只有当注入的对象是无状态的幂等的才可以保证执行前后不被修改,否则执行一次之后单例对象就会发生改变,在下次执行有肯能造成结果不一样,当在高并发的情况下就会出现,这个线程刚使用单例对象进行属性设置,还未使用的情况下,另一个进程已经将单利对象的数据进行修改属性完成,则远来线程获取到的单例就是一个脏对象不可使用。 当单例对象中含有变化的变量数据,则就不可以...转载 2019-01-16 12:15:19 · 526 阅读 · 0 评论 -
这是我见过最优雅的实现单例模式
1.代码优雅整洁 2.具有延迟加载特性 3.无锁原创 2019-01-16 11:33:42 · 725 阅读 · 0 评论 -
单例模式的优缺点和使用场景
文章转自:http://www.tools138.com/create/article/20150929/020009847.html单利模式的优缺点和使用场景 首先介绍一下单例模式: 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的...转载 2019-01-16 11:02:42 · 205 阅读 · 0 评论 -
#探讨简单工厂模式和策略模式的区别#
需求:设计一个能随意切换枪械的装置。策略界面vs工厂界面//策略类界面 class testShot2 { public void printFrame(){ Scanner s = new Scanner(System.in); pkgShot2 pks2 = null;//初始化策略类,策略类包装了shot对象!...原创 2017-11-01 17:23:00 · 140 阅读 · 0 评论 -
简单设计模式01
#大话设计模式之简单工厂模式01# 我们使用一个案例来学习简单工厂模式吧,现在给出一个需求:设计一个“控制台计算机”。 你会怎么做呢,作为一名没学过简答工厂模式的孩纸,你5分钟敲出下面的代码... ... 1 2 3 4 5 6 7 8 9 10 11 12 13 14...原创 2017-11-01 18:38:04 · 185 阅读 · 0 评论 -
策略模式
Java设计模式——策略模式(Strategy Pattern)场景一描述:刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题,嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看看这个场景是什么样子的。先说这个场景中的要素:三个锦囊,三个妙计,一个赵云,妙计是小亮同志给的,妙计是放置在锦囊里,俗称就是锦囊妙计嘛,那赵云就是一个干活...转载 2017-11-01 18:38:42 · 143 阅读 · 0 评论 -
简单工厂和策略模式对比
#探讨简单工厂模式和策略模式的区别#需求:设计一个能随意切换枪械的装置。策略界面vs工厂界面//策略类界面 class testShot2 { public void printFrame(){ Scanner s = new Scanner(System.in); pkgShot2 pks2 = null;...原创 2017-11-01 18:39:19 · 211 阅读 · 0 评论 -
#大话设计模式之装饰者模式#
现在有一个需求:设计一个QQ秀,可以随意搭配服饰。 直接将上代码~~~父类的父类Person(为什么需要父类的父类:乍看父父类其实是可有可无的,但如果删掉,你会发现父类Finery的decorate无法放装饰者)package DecoratorPattern;public class Person { public Person(){ }...原创 2017-11-02 19:38:00 · 162 阅读 · 0 评论 -
#大话设计模式之代理模式#
下简述一下代理模式是什么,一天小明送小红一个礼物,但这个礼物其实是小雷送的,小明只是代理人,小红永远都不会知道小雷,小明(代理)承包了一切动作~~~这就是代理模式。 同样现在有一个需求:模仿小红、小雷、小明三者的关系。首先小明和小雷都需要有送礼物的个方法,所以我们可以把送的方法用接口类写送礼物接口类package ProxyPattern;public interface ...原创 2017-11-02 20:47:00 · 92 阅读 · 0 评论 -
#大话设计模式之工厂方法模式#
说实话,工厂方法模式其实跟简单工厂模式很相似,就是修复了简单工厂的一些不符合开闭原则的bug,但如果你的项目比较小型,还是推荐简单工厂来比较简单方便,毕竟工厂方法还是有美中不足的地方。 现在有一个需求:编写一个学雷锋帮助老人的类。 我们使用简单工厂模式和工厂方法模式写,两个区别就在于界面类和工厂类,其余一样。雷锋父类(包含了雷锋的方法,扫地,买米... ...)packa...原创 2017-11-03 09:36:00 · 133 阅读 · 0 评论 -
#大话设计模式之模板方法模式#
现在有一个需求:请打印学生的答卷首先我们分析,打印有两个学生A、B考试,他们的答卷是一样的(题目),只有答案不一样,这就有很多重复的内容了,但我们不可能把A的代码复制到B去,因为如果试卷需要临时修改,我们就需要把这两份一起修改了,万一有一万个考生考试呢,岂不是改一万次,这是不可能的,我们想到了用继承的方法,所有学生的答卷都继承答卷父类,学生只做回答即可。答卷父类(父类包含了两个问题,还有两...原创 2017-11-03 16:17:00 · 151 阅读 · 0 评论 -
#大话设计模式之外观模式#
外观模式是把分散对象的相同操作集合在一起让一个对象来操作,避免了很多冗余的代码。 需求:建立一个股票买卖系统,一个投资者负责面向所有股票,股民只需要面向投资者就可以了。股票父类(可有可无的类,只是为了后面子类写方法方便一点,一键导入方法)package AppearancePattern;public abstract class Shares { public a...原创 2017-11-04 09:13:00 · 98 阅读 · 0 评论 -
#大话设计模式之建造者模式#
现在有一个需求:画一个人。画人父类(规定了必须有的方法)package BuilderPattern;public abstract class PersonBuilder { public abstract void buildHead(); public abstract void buildBody(); public abstract void b...原创 2017-11-04 22:13:00 · 114 阅读 · 0 评论 -
#大话设计模式之状态模式#
状态模式主要用于解决判断语句过多以至于当需求改变时需要在千丝万缕的判断中修改而发生的错误的问题。,但是缺点是每一个状态需要增加一个类,代码太多。状态父类package StatePattern;public abstract class State { public abstract void writeProgram(Work work);}状态子类class...原创 2017-11-08 11:47:00 · 114 阅读 · 0 评论 -
#大话设计模式之适配器模式#
现在有一个需求:为不懂英语的姚明设置一个翻译球员父类(集合了球员必备的名字与方法等属性)package AdapterPattern;public abstract class Player { String name; public Player(String name) { // TODO Auto-generated constructor st...原创 2017-11-08 15:12:00 · 171 阅读 · 0 评论 -
#大话设计模式之备忘录模式#
备忘录模式就是把一个状态储存在一个类当中,需要用的时候,拿出来。例子如下:主界面类(一共有四个类:主角类Originator记录主角基本信息,记忆类Memento,管理者类Caretaker,主函数类Main)package MementoPattern;public class Main { public void printFrame(){ Origina...原创 2017-11-23 12:01:44 · 264 阅读 · 0 评论 -
Java设计模式之原型模式与深浅拷贝
概述原型模式是一种创建型模式,允许用户从一个样板实例中复制出一个内部属性一致的对象,俗称为克隆.被复制出来的实例就是我们所称的原型. 多用在创建实例比较复杂或者耗时的情况下,因为复制一个已经存在的实例可以使程序运行更高效.定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。使用场景 类初始化需要消化非常多的资源,通过原型拷贝避免这些消耗 通过 new ...转载 2019-01-16 12:27:23 · 106 阅读 · 0 评论