E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
设计模式笔记
[
设计模式笔记
] No.5 单件模式(singleton )
有一些对象其实我们只需要一个,比如:线程池、缓存、日志对象、注册表等。这类对象只能有一个实例,如果制造出多个实例,就会导致许多问题产生,如资源使用过量、程序异常或者结果不一致等。单件模式确保一个类只有一个实例,并提供一个全局访问点。①不考虑多线程并发的单件模式实现/***描述:不考虑多线程并发的单例实现*程序狗:Xander*创建日期:2018/07/0914:21*/publicclassSin
SEVEN_PIG
·
2019-11-07 18:59
[
设计模式笔记
] No.3 装饰者模式(Decorator)
装饰者模式动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。需求星巴兹咖啡店准备更新订单系统,以合乎他们的饮料供求。提供一个Beverage(饮料)类,是一个抽象类,店内所提供的饮料都必须继承自此类。此外,购买咖啡时,也可以要求在其中加入各种调料,例如:豆浆(soy)、摩卡(Mocha)、覆盖奶泡。星巴兹会根据所加入的调料收取不同的费用。所以订单系统必须考虑到这些调料。
SEVEN_PIG
·
2019-11-07 10:03
设计模式总结笔记
设计模式笔记
(无图)继承与组合应尽量把相同的特性提取到超类,把各自的特性抽象成接口。具体实现可以使用组合。如果不能确定的话就多用组合,少用继承。
张大川大川
·
2019-10-27 14:57
设计模式笔记
-大纲
title:
设计模式笔记
-大纲date:2019-04-2509:49:37tags:设计模式作者:muggle设计模式的分类创建型模式共五种:工厂方法模式抽象工厂模式单例模式建造者模式原型模式结构型模式共七种
muggle
·
2019-10-15 21:26
java-ee
设计模式笔记
-大纲
title:
设计模式笔记
-大纲date:2019-04-2509:49:37tags:设计模式作者:muggle设计模式的分类创建型模式共五种:工厂方法模式抽象工厂模式单例模式建造者模式原型模式结构型模式共七种
muggle1
·
2019-10-15 14:00
设计模式笔记
(二):简单工厂设计模式
简单工厂设计模式,不是标准23种设计模式,但是因为它较为常用,故而放到设计模式当中来。在了解简单工厂设计模式之前,我们来复习一下JAVA接口的知识。一:JAVA接口在java中,接口是一种特殊的类,接口中的所有方法都是抽象方法(abstract),接口中的所有属性都是常量,在接口中,我们定义的是方法但没有具体实现,我们需要在写一个继承类(implements),在这个继承类里具体实现接口中的方法。
江流石不转
·
2019-08-31 12:00
设计模式笔记
-大纲
title:
设计模式笔记
-大纲date:2019-04-2509:49:37tags:设计模式作者:muggle设计模式的分类创建型模式共五种:工厂方法模式抽象工厂模式单例模式建造者模式原型模式结构型模式共七种
muggle
·
2019-08-30 00:00
java-ee
设计模式笔记
(一):Singleton 设计模式
今天开始学习设计模式,借此机会学习并整理学习笔记。设计模式是一门不区分语言的课程,什么样的编程语言都可以用到设计模式。如果说java语法规则比作武功招式的话,那么设计模式就是心法。设计模式共有23种,常见的19种,最常用的9-10种。设计模式分三种类型:创建型、结构型、行为型;其中创建型包含单例设计模式、工厂模式、抽象工厂模式、原型模式、建造者模式;结构型包含代理模式、装饰器模式、适配器模式、外观
江流石不转
·
2019-08-27 13:00
大话
设计模式笔记
(十八)の单例模式
单例模式定义保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以创建,并且它可以提供一个访问该实例的方法。UML图方式一:单线程下的单例/***CreatedbycallmeDevilon2019/8/17.*/publicclassSing
callmeDevil
·
2019-08-17 16:00
大话
设计模式笔记
(十七)の迭代器模式
迭代器模式定义提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。什么时候用?当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式。你需要对聚集有多种方式遍历时,可以考虑用迭代器模式。UML图模板代码Aggregate/***聚集抽象类*CreatedbycallmeDevilon2019/8/17.*/publicabstractclas
callmeDevil
·
2019-08-17 14:00
大话
设计模式笔记
(十六)の组合模式
组合模式定义将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。UML图模板代码Component/***组合对象*CreatedbycallmeDevilon2019/8/11.*/publicabstractclassComponent{protectedStringname;publicComponent(Stringname){this
callmeDevil
·
2019-08-11 17:00
大话
设计模式笔记
(十五)の备忘录模式
举个栗子问题描述打游戏存进度。简单实现GameRole/***游戏角色*CreatedbycallmeDevilon2019/8/11.*/publicclassGameRole{//生命力privateintvit;//攻击力privateintatk;//防御力privateintdef;//状态显示publicvoidstateDisplay(){System.out.println("角色
callmeDevil
·
2019-08-11 15:00
大话
设计模式笔记
(十四)の适配器模式
举个栗子问题描述不同国家的人在NBA打球,但都是用英文交流。简单实现Player/***球员*CreatedbycallmeDevilon2019/8/4.*/publicabstractclassPlayer{protectedStringname;publicPlayer(Stringname){this.name=name;}//发起进攻publicabstractvoidattack();
callmeDevil
·
2019-08-04 16:00
大话
设计模式笔记
(十三)の状态模式
举个栗子问题描述上班的日子,上午状态好,中午想睡觉,下午渐恢复,加班苦煎熬。根据时间的不同体现不同的工作状态。简单实现Work/***工作类*CreatedbycallmeDevilon2019/8/3.*/publicclassWork{privateinthour;privatebooleanfinish=false;publicvoidwriteProgram(){if(hour<12){S
callmeDevil
·
2019-08-03 15:00
设计模式笔记
汇总
目录设计原则“依赖倒置”原则未完待续...设计模式设计模式——策略模式设计模式——装饰者模式设计模式——观察者模式设计模式——简单工厂设计模式——工厂方法模式设计模式——抽象工厂模式设计模式——单例模式未完待续...
prik丶
·
2019-08-02 13:29
设计模式——抽象工厂模式
《HeadFirst设计模式》学习笔记,码云同步更新中如有错误或不足之处,请一定指出,谢谢~目录查看其它
设计模式笔记
,点这里→
设计模式笔记
汇总抽象工厂模式(AbstractFactoryPattern)
prik丶
·
2019-07-31 14:23
设计模式——简单工厂
《HeadFirst设计模式》学习笔记,码云同步更新中如有错误或不足之处,请一定指出,谢谢~目录查看其它
设计模式笔记
,点这里→
设计模式笔记
汇总简单工厂定义:定义一个类来专门负责创建其他类的实例,被创建的实例通常具有共同的父类
prik丶
·
2019-07-31 14:44
大话
设计模式笔记
(十二)の抽象工厂模式
举个栗子问题描述模拟访问数据库“新增用户”和“得到用户”,用户类假设只有ID和Name两个字段。简单实现User/***用户类*CreatedbycallmeDevilon2019/7/28.*/publicclassUser{privateintid;privateStringname;//省略getset方法}SqlServerUser/***假设sqlServer连接,用于操作User表*C
callmeDevil
·
2019-07-28 17:00
大话
设计模式笔记
(十一)の观察者模式
举个栗子问题描述几个同事上班期间看股市行情,让前台MM帮忙看着老板什么时候过来查岗,老板进门的时候MM就拨电话给其中一个同事,于是所有同事都知道了,再继续工作。。。简单实现前台秘书MM/***前台秘书MM*CreatedbycallmeDevilon2019/7/27.*/publicclassSecretary{//同事列表privateListobservers=newArrayListobs
callmeDevil
·
2019-07-27 16:00
大话
设计模式笔记
(十)の建造者模式
举个栗子问题描述画一个小人,有头、身体、两手、两脚就可以了。简单实现人类/***人类*CreatedbycallmeDevilon2019/7/21.*/publicclassPerson{publicvoiddrawHead(){System.out.print("头");}publicvoiddrawBody(){System.out.print("身体");}publicvoiddrawHa
callmeDevil
·
2019-07-21 14:00
大话
设计模式笔记
(九)の外观模式
举个栗子问题描述股民炒股票简单实现股票1/***股票1*CreatedbycallmeDevilon2019/7/20.*/publicclassStock1{publicvoidsell(){System.out.println("股票1卖出");}publicvoidbuy(){System.out.println("股票1买入");}}其他股票/***股票2*CreatedbycallmeD
callmeDevil
·
2019-07-20 14:00
大话
设计模式笔记
(八)の模板方法模式
举个栗子问题描述小时候数学老师的随堂测验,都是在黑板上抄题目,然后再作答案。写一个抄题目的程序。简单实现学生甲抄的试卷/***学生甲抄的试卷*CreatedbycallmeDevilon2019/7/14.*/publicclassTestPaperA{//试题1publicvoidtestQuestion1(){System.out.println("路飞在顶上战争之后,修炼了多久?a.3天b.
callmeDevil
·
2019-07-14 15:00
大话
设计模式笔记
(七)の原型模式
举个栗子问题描述要求有一个简历类,必须要有姓名,可以设置性别和年龄,可以设置工作经历,最终需要三份简历。简单实现简历类/***简历类*CreatedbycallmeDevilon2019/7/13.*/publicclassResume{privateStringname;privateStringsex;privateStringage;privateStringtimeArea;private
callmeDevil
·
2019-07-13 14:00
大话
设计模式笔记
(六)の工厂方法模式
栗子回顾简单工厂模式:https://www.cnblogs.com/call-me-devil/p/10926633.html运算类使用工厂方法模式实现UML图代码实现工厂接口/***工厂接口*CreatedbycallmeDevilon2019/7/7.*/publicinterfaceIFactory{/***创建运算类**@return*/BaseOperationcreateOperta
callmeDevil
·
2019-07-07 15:00
大话
设计模式笔记
(五)の代理模式
举个栗子故事是这样的...一个小伙子喜欢上了隔壁班的一个妹子,但是又不认识,也害羞不好意思主动去说话,于是拜托了同样在这个班的一个朋友去传递自己想要送的礼物。。。代码实现该模式就不上什么简单实现了,直奔完整实现。被追求者/***被追求者*CreatedbycallmeDevilon2019/6/29.*/publicclassSchoolGirl{privateStringname;publicS
callmeDevil
·
2019-06-29 18:00
大话
设计模式笔记
(四)の装饰模式
举个栗子问题描述可以给人搭配嘻哈服或白领装的程序。简单实现代码/***人类*CreatedbycallmeDevilon2019/6/23.*/publicclassPerson{privateStringname;publicPerson(Stringname){this.name=name;}publicvoidwearTShirts(){System.out.print("大T恤");}pu
callmeDevil
·
2019-06-23 17:00
大话
设计模式笔记
(三)の六大原则
单一职责原则英文:SingleResponsibilityPrinciple,简称SRP。定义就一个类而言,应该仅有一个引起它变化的原因。描述如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。如果能想到多于一
callmeDevil
·
2019-06-16 14:00
数据库与三种模式
数据库--由数据库连接池引出的三种
设计模式笔记
摘要:这里首先对数据库连接池的优化进行了说明,同时自己编写了一个数据库连接池,在实际开发中,为了获取标准的数据源,我们需要去实现javax.sal.DataSource
兔的骄傲
·
2019-06-01 16:54
数据库
设计模式
数据库基础知识点
大话
设计模式笔记
(二)の策略模式
举个栗子问题描述商场收银软件,营业员根据客户所购买的商品单价和数量,向客户收费。简单实现/***普通实现*CreatedbycallmeDevilon2019/6/1.*/publicclassNormalTest{publicstaticvoidmain(String[]args){doubleprice=10;doublenum=5;System.out.println(String.form
callmeDevil
·
2019-06-01 12:00
大话
设计模式笔记
(一)の简单工厂模式
概要一个好的程序猿/媛敲出来的代码应该是可维护、可复用、可扩展的,也就是具有较好的灵活性。为了达到以上目的,在还没敲代码之前,需要事先考虑通过何种方式能够使自己的程序的耦合度降低,最基本的便是面向对象的封装、继承、多态。但这往往是不够的,需要根据实际情况选择合适的设计模式使得程序变得更加灵活,容易修改,并且易于复用。复用并不是复制的意思。在实际开发当中,有时候会遇到一些类似的功能,有一部分已经是在
callmeDevil
·
2019-05-26 17:00
java
设计模式笔记
之装饰模式
一、装饰模式的定义装饰模式是一种比较常见的模式,其定义如下:Attachadditionalresponsibilitiestoanobjectdynamicallykeepingthesameinterface.Decoratorsprovideaflexiblealternativetosubclassingforextendingfunctionality.(动态地给一个对象添加额外的职责。
孟凡勇
·
2019-04-01 08:07
设计模式笔记
————访问者模式
访问者模式:表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。Visitor类,为该对象结构中ConcreteVisitor的每一个类声明一个Visit操作。访问者接口为使用不同算法的子类声明访问操作。publicabstractclassVisitor{publicabstractvoidvisitConcreteElementA(Conc
BZeHong
·
2019-03-14 19:50
设计模式
设计模式笔记
————单例模式
单例模式:保证一个类只有一个实例,并提供一个方法访问它的全局访问点。Singleton类,定义一个getInstance方法,允许客户访问它的唯一实例。getInstance是一个静态方法,主要负责创建自己的唯一实例。publicclassSingleton{privatestaticSingletoninstance;privateSingleton(){super();}publicstati
BZeHong
·
2019-03-12 13:53
设计模式
设计模式笔记
————组合模式
组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。Compoent为组合中的对象声明接口,在适当情况下,实现所有类共有接口的默认行为。并声明一个接口用于访问和管理Compoent的子部件。publicabstractclassComponent{privateStringname;publicStringgetName(){retu
BZeHong
·
2019-03-11 19:23
设计模式
设计模式笔记
————建造者模式
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。客户端只需指定需要建造的类型,具体建造的过程由建造者类(Director)完成。建造者模式结构图:建造者模式主要用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。由于指挥者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者
BZeHong
·
2019-03-06 16:42
设计模式
设计模式笔记
————简单工厂模式和策略模式
简单工厂模式在创建对象时,通过传入的参数的值决定要实例化的对象。弊端:增加功能时,需要修改工厂类代码,不符合开放-封闭原则。示例:实现加减运算//父类publicclassOperation{privatedoublenumberA=0;privatedoublenumberB=0;privatedoubleresult=0;publicdoublegetNumberA(){returnnumbe
BZeHong
·
2019-03-04 11:39
设计模式
设计模式精讲 | 笔记 —— 序章
本专栏主要记录自己所学
设计模式笔记
。希望对大家有所帮助!
Coder编程
·
2019-02-18 00:00
Java开发
学习系列
#
设计模式篇
Java设计模式精讲笔记
设计模式笔记
之一概要篇
设计模式的起源模式之父ChristopherAlexander(克里斯托弗﹒亚历山大),哈佛大学建筑学博士,美国加州大学伯克利分销建筑学教授,加州大学伯克利分校环境结构研究所所长,美国艺术和科学院院士等,CharistopherAlexander博士及其研究团队用了约20年的时间,对住宅和周边环境进行大量的调查研究和资料收集工作,发现人们对舒适住宅和城市环境存在一个共同的认同规律,Christop
给我一个自信的表情
·
2018-11-03 11:13
Design
Patterns
Design
Patterns
大话
设计模式笔记
之---依赖倒置原则
依赖倒置原则(DependenceInversionPrinciple,DIP)又名”面向接口编程”Highlevelmoudulesshouldnotdependuponlowlevelmodules.Bothshoulddependuponabstractions.Absteactionsshouldnotdependupondetails.Detailsshoulddependuponabs
coderredoc
·
2018-08-27 16:13
设计模式
设计模式之代理模式
title:设计模式之代理模式date:2018-08-1520:25:42tags:
设计模式笔记
Java设计模式之代理模式代理模式是给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。
Blue_hr
·
2018-08-16 17:28
设计模式笔记
(九): 模板方法模式
喝饮料平时我们喝茶或者喝咖啡一般经历以下四个步骤(星巴克等享受生活的土豪请稍微忍耐一下):烧开水用水冲泡泡好之后倒入杯中加入调料我们可以写出如下代码:publicclassCoffee{publicvoidstart(){prepare();System.out.println("开始喝咖啡");}privatevoidprepare(){boil();//烧水brew();//冲泡poure()
yeonon
·
2018-07-28 13:22
设计模式笔记
(七): 适配器模式
生活中经常会遇到这样一个场景:手机充电器的插头是两脚的,但是插排没有合适两脚的接口,这时如果想要继续充电,要么换一个插排,要么使用一个转换器,将两脚的转换成三脚的。后一种做法在面向对象编程中可以称为“适配器模式”。适配器模式有两种编写方式:类的适配器对象适配器类的适配器即通过多重继承来实现,但Java不支持多重继承,不过也可以将其中一个类写成接口来实现。对象适配器是通过组合来实现的。下面会看到样例
yeonon
·
2018-07-26 13:11
设计模式笔记
(六): 命令模式
命令模式是什么呢?考虑一下电视遥控器的场景,我们按下遥控器的某个按键,电视就会有相应的反应(例如换台)。按下遥控器就想是人发起了一个命令,遥控器接受了这个命令,并将其转发给电视,最后电视处理这个命令,并作出响应。整个过程中,遥控器并不知道请求的具体内容,即它不知道人类是想要换台呢,还是调节音量等等,它不关系这些东西而只需要将命令完整的转发给电视机即可。那为什么还需要这个遥控器呢?人类完全可以直接操
yeonon
·
2018-07-25 14:10
设计模式笔记
(二): 观察者模式
大部分人每天打开手机都会看到各种APP推送的消息,这个推送是怎么做到的呢?在GUI软件上点击一个按钮,正常情况下都会有一些反应,如何实现的呢?其实这些实现都可以使用观察者模式来实现。原理观察者模式的原理其实很简单,其核心主要是:主题观察者主题即观察者关心的东西,例如在APP推送这个场景中,用户是观察者,主题就是APP,用户在安装APP后并开启消息推送功能表明用户关系该APP的消息,当APP有变化的
yeonon
·
2018-07-21 12:12
【
设计模式笔记
】(十八)- 适配器模式
适配器模式(AdapterPattern),此模式的作用就是兼容原本接口不匹配的两个类,起到桥梁的作用。其实在Android中平常接触的就很多,ListView和GridView到RecyclerView都用到的Adapter就用到了适配器模式,无论给Adapter什么样的数据,最后到RecyclerView显示的都是View。类适配器模式类的适配器模式,采用继承实现的适配器模式.pngTarge
MrTrying
·
2018-07-21 00:07
【
设计模式笔记
】(七)- 责任链模式
1.简述责任链模式(ChainofResponsibility),行为型设计模式之一。什么是责任链呢?这个链的形式更像是数据结构中的单链表,链中的每个节点都有自己的职责,同时也持有下一个节点的引用,属于自己职责范围内的请求就自行处理,并完成请求的处理;而不属于的职责就传递给下一个节点。每个节点都是如此循环,直至请求被处理或者已经没有处理节点。这种设计模式是为了避免请求的发送者和接收者之间的耦合关系
MrTrying
·
2018-07-21 00:33
设计模式笔记
(一): 策略模式
当我们需要在系统中添加一些部分功能相同的类时,该怎么办呢?立刻能想到的是继承,将功能相同的代码抽离出来,放到基类中,之后有新的需求只需要继承这个基类即可。继承带来的问题但这里有一个问题,是否能完全确定将来的需求都具有基类中定义的功能呢?如果没有的话,继承基类的子类又包含基类的非私有方法,即子类“被迫添加”了一些他不想要的功能。当然,我们可以在子类中覆盖不想要的功能,只需在方法体什么都不做就行。(这
yeonon
·
2018-07-20 13:25
[
设计模式笔记
] No.8 模板方法模式(Template)
模板方法模式,它以及它的变体,在我们编程的时候经常见到。定义模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。这个模式使用了创建一个算法的模板,模板就是一个方法。更具体地说,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责是实现。这可以确保算法的结构保持不变,同时由子类提供部分实现。什
SEVEN_PIG
·
2018-07-17 09:05
C++ Qt
设计模式笔记
8.1lazy-fashionQObject的赋值(assignment)构造函数被设为私有,所以所有按值传递QObject及其子类的行为将会报错不要在堆上创建QVariant相关的类型,如QString,QList,QHash,QImage,8.2QObject如果有parent的则new后无需delete8.4加入Q_OBJECT后必须运行qmake重新生成makefile8.6一切QObje
菜树人
·
2018-07-07 15:58
qt
设计模式笔记
(1)——从Gson看工厂模式
前言“设计模式”这四个字,对于使用面向对象语言进行软件开发的程序员来说绝不会陌生,不过对于很多经验尚浅的而言也仅仅是知道而已,如果仅仅是一股脑地在需求与编码中忙碌,很可能都说不出几种设计模式,更别谈在实际的开发中使用了。学习设计模式可以说是开发者的晋级之路,熟练掌握设计模式能很大程度地提升开发者的设计思想和封装思想,加深对面向对象设计的理解、提高编码效率与质量。最近有了个写写与设计模式相关的博客的
CarlTortoise
·
2018-06-23 02:11
深入学习设计模式
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他