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
设计模式学习笔记
设计模式学习笔记
——组合模式
组合模式组合模式,将对象组合合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。代码实现接口声明Component/** *接口声明 *@authorxukai2016年3月26日下午4:58:37 * */ publicabstractclassComponent{ protectedStringname; publicComponent(Str
u011499992
·
2016-03-26 21:00
树
demo
结构图
组合模式Composite
设计模式学习笔记
——备忘录模式
备忘录模式备忘录模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。结构图代码实现备忘录类Memento:/** *备忘录:负责储存原始对象的内部状态 *@authorxukai *2016年3月23日下午6:44:26 */ publicclassMemento{ privateStringstate; publicM
u011499992
·
2016-03-23 23:00
定义
备忘录模式
memento
结构图
设计模式学习笔记
——适配器模式
适配器模式适配器模式,将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。结构图代码实现Target:客户期待的接口/** *客户期待的接口 *@authorxukai *2016年3月22日下午12:57:38 */ publicclassTarget{ publicvoidrequest(){ System.out.prin
u011499992
·
2016-03-22 23:00
Adapter
demo
适配器模式
结构图
设计模式学习笔记
——状态模式
状态模式状态模式,当一个对象的内在状态改变时允许改变其行为,这个对象像是改变了其类。结构图代码实现抽象状态类,定义一个接口以封装与Context的一个特定状态相关的行为。/** *抽象状态类 *@authorxukai *2016年3月21日下午10:44:50 */ publicabstractclassState{ publicabstractvoidhandle(Contextcontex
u011499992
·
2016-03-21 23:00
demo
状态模式
使用场景
结构图
设计模式学习笔记
——抽象工厂模式
抽象工厂模式抽象工厂模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。结构图代码实现两种抽象产品类:A和B/** *抽象产品A * *@authorxukai2016年3月20日下午1:47:24 */ publicabstractclassAbstractProductA{ }/** *抽象产品B * *@authorxukai2016年3月20日下午1:47:46
u011499992
·
2016-03-21 00:00
demo
抽象工厂模式
结构图
反射+简单工厂
设计模式学习笔记
——观察者模式
观察者模式观察者模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。结构图代码实现抽象观察者Observer:根据被观察者动作,做出相应动作。/** *抽象观察者类 *@authorxukai *2016年3月16日下午11:33:10 */ publicabstractclassObserver{
u011499992
·
2016-03-17 11:00
观察者模式
demo
优点
结构图
设计模式学习笔记
——外观模式
外观模式外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。结构图代码实现子系统:publicclassSubSystemOne{ publicvoidmethodOne(){ System.out.println("子系统一,方法一"); } }publicclassSubSystemTwo{ publicvoid
u011499992
·
2016-03-15 16:00
定义
demo
外观模式
结构图
设计模式学习笔记
——模板方法模式
模板方法模式模板方法模式,定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。结构图代码实现抽象类AbstractClass:/** *算法的骨架 *@authorxukai *2016年3月14日下午9:16:20 */ publicabstractclassAbstractClass{ publicabstractvoidprim
u011499992
·
2016-03-14 22:00
demo
代码实现
模板方法模式
结构图
设计模式学习笔记
——原型模式
原型模式原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。结构图Prototype具备下面两个条件:1.实现Cloneable接口,在Java语言有一个Cloneable接口,它的作用就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在Java虚拟机中,只有实现了此接口的类才可以被拷贝,否则在运行时出现CloneNotSupportedExceptio
u011499992
·
2016-03-13 19:00
设计模式
原型模式
深复制和浅复制
设计模式学习笔记
-单例模式
一:简介1. 在我们的一些应用中,比如缓存池,数据库连接池,线程池,一些应用服务实例等事件上我们通常需要保证在一个类中只能被创建一个对象,这这时候就需要单例模式。 2.单例模式主要有3个特点,:2.1单例类确保自己只有一个实例。2.2单例类必须自己创建自己的实例。2.3单例类必须为其他对象提供唯一的实例。 3.实现方式:懒汉单例类和饿汉单例类3.1 懒汉式单例类对于懒汉模式,我们可以这样理解:
SUNFC_nbu
·
2016-03-09 17:00
设计模式
单例模式
设计模式学习笔记
——工厂方法模式
工厂方法模式工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法是一个类的实例化延迟到其子类。Product:定义工厂方法所创建的对象的接口ConcreteProduct:具体的产品,实现Product接口Creator:声明工厂方法,返回Product类型的对象ConcreteCreator:重定义工厂方法,返回一个ConcreteProduct代码实现Creator类:
u011499992
·
2016-03-09 11:00
设计模式
简单工厂模式
工厂方法模式
设计模式学习笔记
——代理模式
代理模式代理模式定义:为其他对象提供一种代理以控制对这个对象的访问。结构图Subject:定义了RealSubject和Proxy的共用接口,可以实现任何使用RealSubject的地方都可以使用ProxyRealSubject:定义Proxy所代表的真实实体。Proxy:保存一个引用使得代理可以访问实体,并提供一个与Subject的接口相同的接口,代替实体。代码实现Subject类:/** *定
u011499992
·
2016-03-08 22:00
设计模式
代理模式
Java
设计模式学习笔记
(观察者模式)
观察者模式说起来很简单,就是一个订报纸的模式。但是实际上这部分我觉得还是很有意思的,《HeadFirst设计模式》里还有一些还没看完,也是因为理解的不够深吧。 观察者模式会包含两个组件:观察者和主题。 这段代码是主题的接口: packageobeserver; publicinterfaceSubject{ publicvoidregisterObserver(Observer
wingsless
·
2016-03-08 20:00
Java
设计模式学习笔记
(观察者模式)
观察者模式说起来很简单,就是一个订报纸的模式。但是实际上这部分我觉得还是很有意思的,《HeadFirst设计模式》里还有一些还没看完,也是因为理解的不够深吧。观察者模式会包含两个组件:观察者和主题。这段代码是主题的接口:packageobeserver;publicinterfaceSubject{publicvoidregisterObserver(Observerobserver);publi
wingsless
·
2016-03-08 20:00
设计模式学习笔记
——装饰模式
装饰模式装饰模式定义:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。结构图:Component:定义对象接口,可以给对象动态地添加职责。ConcreteComponent:定义具体的对象,即装饰的对象,也可以给该对象添加职责。Decorator:装饰抽象类,继承了Component,从外类来扩展Component类的功能。(Component不知道Decorato
u011499992
·
2016-03-08 11:00
设计模式
装饰模式
结构图
Java
设计模式学习笔记
(单例模式)
最近一直在看《HeadFirst设计模式》,这本书写的确实是很不错的,专注于怎么用最简单的方式最通俗的语言让人了解设计模式。据说GoF的设计模式那本书写的很好,是一本经典,但是就是难懂,这本书应该就是我们这些一看经典书就困的人的宝贝了。 不过HeadFirst系列并不专注于写代码,我就把自己学习的时候写出来的代码贴在这里当做笔记吧,也方便搜到的人参考。 单例模式是我遇到的最多的模式了,这种
wingsless
·
2016-03-07 20:00
Java
设计模式学习笔记
(单例模式)
最近一直在看《HeadFirst设计模式》,这本书写的确实是很不错的,专注于怎么用最简单的方式最通俗的语言让人了解设计模式。据说GoF的设计模式那本书写的很好,是一本经典,但是就是难懂,这本书应该就是我们这些一看经典书就困的人的宝贝了。不过HeadFirst系列并不专注于写代码,我就把自己学习的时候写出来的代码贴在这里当做笔记吧,也方便搜到的人参考。单例模式是我遇到的最多的模式了,这种模式大部分被
wingsless
·
2016-03-07 20:00
设计模式学习笔记
——设计模式的六大原则
设计模式的六大原则1.单一职责原则单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。判读:如果能够想到多一个的动机去改变一个类,那么这个类就具
u011499992
·
2016-02-29 22:00
设计模式原则
设计模式学习笔记
——策略模式
策略模式问题:商场收银软件,根据单价和数量,得到总价。设计思路:两个输入框,分别代表单价和数量,一个下拉框,选项有:正常,打折,满减等算法商场有时需要正常收费,有时打折扣,有时满300送100.下面是简单工厂模式下:所有算法的父类抽象类CashSuper:publicabstractclassCashSuper{ publicabstractdoubleacceptCash(doublemone
u011499992
·
2016-02-26 00:00
简单工厂模式
策略模式
设计模式学习笔记
——简单工厂模式
在学校的时候就看到一本书——《大话设计模式》,就觉得是一本好书,只是大略的浏览了一下,在青岛培训的时候,也看了一半左右,时间一长就忘了,重新看一遍,写写学习笔记。简单工厂模式问题:使用Java面向对象语言实现计算器控制台程序。importjava.util.Scanner; publicclassCalculator{ publicstaticvoidmain(String[]args){
u011499992
·
2016-02-24 23:00
设计模式
简单工厂模式
设计模式的一些概念----
设计模式学习笔记
一.设计模式的六大原则 1.单一职责原则定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责,这样对某个类类的改变只会是一种原因导致的。 2.里氏替换原则定义一:如果堆每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2是,程序P的行为没有发生变换,那么类型T2是类型T1的子类型。定义二:所有引用基类的地方必须
tongqu
·
2016-02-23 23:00
设计模式学习笔记
此篇博客主要总结设计模式的一些定义和特点。在最后有设计模式的总结分类,涉及到大量java的相关知识,有部分javaweb的知识。其它涉及swift语言只有一句但不影响理解。对编译、系统有基础当然是更好1:命令模式定义:将一个请求封装为一个对象,从而使用户可用不同的请求进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。(Encapsulatearequestasanobject,t
u012322855
·
2016-02-23 18:00
java
设计模式
Java23种
设计模式学习笔记
【目录总贴】
以下是各个模式的简要介绍,点击设计模式名称进入对应设计模式的详细解释页面。学习资料来源于网络,如有问题欢迎留言。创建型模式:关注对象的创建过程 1、单例模式:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点主要:饿汉式(线程安全,调用效率高,但是不能延时加载)懒汉式(线程安全,调用效率不高,但是可以延时加载)其他:双重检测锁式(由于JVM底层内部模型原因,偶尔会出问题。不建议使用)静
天王盖地虎
·
2016-02-19 16:00
[
设计模式学习笔记
] -- 观察者模式
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。出版者+订阅者=观察者模式。以报社与订报人为例:报社出版报纸。你向这家报社订阅报纸,只要他们有新版报纸出版,就会给你送一份。当你不想再看报纸的时候,取消订阅,报社就不会在给你送报纸。举个简单的例子来描述观察者模式。某某市要建立空气质量站,购买了最新型的空气质量监测仪来实时监测城市的空气质量。
TheBlackPearl
·
2016-01-31 13:00
JavaScript
设计模式学习笔记
2
上篇有些设计模式没说道,一方面是我没见到,一方面是我不太理解。今天再说说其他的几种设计模式:1.代理模式就是我把一件事交给专门的一个处理程序去做。比如下面这个例子:varkeyMgr=keyManage(); keyMgr.listen('change',proxy(function(keyCode){ console.log(keyCode); }))这块的proxy就是那个代理,原先是后面直接
sufubo
·
2016-01-29 21:00
JavaScript
设计模式
函数
JavaScript
设计模式学习笔记
设计模式可以帮助我们更好的解决一类问题,重复代码。下面学习一下作为一名前端工程师应该掌握的设计模式:1.单体模式,也叫单例模式其实就是把自己的代码的作用变量全部放到一个命名空间下面,以便日后的维护和避免全局变量的使用。varfunctionGroup={name:'sufubo',method1:function(){//code},init:function(){//body...}}大概就是这
vieber
·
2016-01-28 22:46
js
设计模式
javascript
函数
JavaScript
设计模式学习笔记
设计模式可以帮助我们更好的解决一类问题,重复代码。下面学习一下作为一名前端工程师应该掌握的设计模式:1.单体模式,也叫单例模式其实就是把自己的代码的作用变量全部放到一个命名空间下面,以便日后的维护和避免全局变量的使用。varfunctionGroup={ name:'sufubo', method1:function(){ //code }, init:function(){ //body...
sufubo
·
2016-01-28 22:00
JavaScript
设计模式
函数
设计模式--15、模板方法模式
设计模式学习笔记
-模板方法模式1.概述定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。
哼哼哈哈二将
·
2016-01-27 17:00
Java23种
设计模式学习笔记
【目录总贴】
以下是各个模式的简要介绍,点击设计模式名称进入对应设计模式的详细解释页面。学习资料来源于网络,如有问题欢迎留言。创建型模式:关注对象的创建过程 1、单例模式:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点主要:饿汉式(线程安全,调用效率高,但是不能延时加载)懒汉式(线程安全,调用效率不高,但是可以延时加载)其他:双重检测锁式(由于JVM底层内部模型原因,偶尔会出问题。不建议使用)静
沉夫子
·
2016-01-09 15:00
访问者模式(Visitor)
二、应用场景XML文档解析器设计编译器设计复杂集合对象的处理Java23种
设计模式学习笔记
【目录总贴】参考资料:大话设计模式(带目录完整版).pdfHEAD_FIR
沉夫子
·
2016-01-09 14:00
[
设计模式学习笔记
] -- 策略模式
策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。举一个简单的例子来描述策略模式。设计一款冷兵器时代士兵打仗的游戏,游戏内部设计要使用OO技术。首先,设计一个士兵对象(Soilder)作为父类,然后在设计许多不同种类的士兵对象来继承士兵这个父类,比如:长枪兵(Spearman)、骑兵(Cavalryman)、弓箭手(Bowman)等等,设计好后进行
TheBlackPearl
·
2016-01-07 20:00
设计模式学习笔记
之(状态设计模式)…
今天这个模式之前先说说看需求吧.我们在处理业务逻辑过程中经常会碰到这么一个问题,就是很多业务上需要判断,ifelse非常多的嵌套.针对不同的条件需要做不同的处理,然后今天给培训的学员说的时候,突然之间就写了个.就拿订单处理这个问题来说吧.业务定义,订单支付状态有四种:未支付,支付中,支付完成,支付错误.针对不同的状态我们的业务处理也是不一样的,通常情况下我们都是写各种ifelse每个条件判断写各自
李荣强
·
2015-12-24 00:00
编程思想
设计模式学习笔记
简述
创建型模式1.抽象工厂模式(AbstractFactory):提供一个创建一系列或相关依赖对象的接口,而无需指定它们具体的类。2.建造者模式(Builder):将一个浮躁对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。3.工厂模式(Factory):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂模式使一个类的实例化延迟到其子类。4.原型模式(Prototype):用原型
·
2015-12-09 17:22
设计模式
HTML设计模式日常学习笔记整理
HTML
设计模式学习笔记
本周我主要学习了HTML的设计模式,现将我的学习内容总结如下:一.盒模型的学习CSS中有一种基础的设计模型叫做盒模型,它定义了元素是如何被看做盒子来解析的。
佚名
·
2015-11-17 16:21
设计模式学习笔记
--职责链模式
一.简介说道职责链模式可能比较陌生,但是我们在工作生活中经常会遇到职责链。比如我最近有事,要请一天的假,那么我在系统上提交一个申请。如果这个假期很短,可能直接上级就批复了。但是如果假期比较长,直接上级没有办法审批,那么这个请求就会继续向上发,转到部门领导。部门领导审批了。而如果假期再长,那么这个请求也许会再上一级。这样的一个过程就是职责链。看一下职责连模式的定义:在责任链模式里,很多对象由每一个对
puppet_master
·
2015-11-15 22:00
设计模式
模式
架构
职责链
软工
步步为营 .NET 代码重构学习笔记 九
示例 步步为营 .NET
设计模式学习笔记
十二、Observer (观察者模式) 二、Change Unid
·
2015-11-13 19:27
.net
步步为营 .NET
设计模式学习笔记
二十四、Factory Method(工厂方法模式)
概述 在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变?这就是要说的Factory Method模式了。 意图 定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory M
·
2015-11-13 19:08
factory
步步为营 .NET
设计模式学习笔记
二十二、Memento(备望录模式)
概述 在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态。如果使用一些公有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。如何实现对象状态的良好保存与恢复?但同时又不会因此而破坏对象本身的封装性。 意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。
·
2015-11-13 19:08
.net
步步为营 .NET
设计模式学习笔记
二十一、Visitor(访问者模式)
概述 表示一个作用于某对象结构中的元素操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作,它把数据结构和作用于结构上的操作之间的耦合性解脱开,使的操作结合可以相对自由地演化。优点是增加新的操作很容易,因为增加一个新的操作就意味着增加一个新的访问者,访问者模式将有关的行为集中到一个访问对象中。 意图 实现通过统一的接口访问不同类型元素的操作,并且通过这个接口可以增加新的操作而不改
·
2015-11-13 19:07
visitor
步步为营 .NET
设计模式学习笔记
十九、Chain of Responsibility(职责链模式)
概述 在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显示指定,将必不可少地带来请求发送者与接受者的紧耦合。 如何使请求的发送者不需要指定具体的接受者?让请求的接受者自己在运行时决定来处理请求,从而使两者解耦。 意图 责任链模式是一种对象的行为模式【GOF95】。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递
·
2015-11-13 19:06
chain
步步为营 .NET
设计模式学习笔记
十八、Template(模板模式)
概述 变化一直以来都是软件设计的永恒话题,在XP编程中提倡拥抱变化,积极应对。如何更好的去抓住变化点,应对变化?如何更好的提高代码复用?通过学习Template Method模式,您应该有一个新的认识。 意图 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。[-GOF《设计模式》] 结构图
·
2015-11-13 19:05
template
步步为营 .NET
设计模式学习笔记
十七、Flyweight(享元模式)
概述 面向对象的思想很好地解决了抽象性的问题,一般也不会出现性能上的问题。但是在某些情况下,对象的数量可能会太多,从而导致了运行时的代价。那么我们如何去避免大量细粒度的对象,同时又不影响客户程序使用面向对象的方式进行操作? 意图 运用共享技术有效地支持大量细粒度的对象。[GOF 《设计模式》] 结构图 1.单纯享元模式的结构 在单纯享元模式中,所有的享元对象
·
2015-11-13 19:04
flyweight
步步为营 .NET
设计模式学习笔记
十六、Facade(外观模式)
概述 在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?这就是要说的Façade 模式。重新进行类的设计,将原来分散在源码中的类/结构及方法重新组合,形成新的、统一的接口,供上层应用使用。 Facade所面对的往往是多个类或其它程
·
2015-11-13 19:03
Facade
步步为营 .NET
设计模式学习笔记
十五、Composite(组合模式)
概述 组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。 描述Composite模式的最佳方式莫过于树形图。从抽象类或接口为根节点开始,然后生枝发芽,以形成树枝节点和叶结点。因此,Composite模式通常用来描述部分与整体之间的关系,而通过根节点对该结构的抽象,
·
2015-11-13 19:03
.net
步步为营 .NET
设计模式学习笔记
十四、Decorator(装饰模式)
概述 在软件系统中,有时候我们会使用继承来扩展对象的功能,但是由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何“功能扩展变化”所导致的影响将为最低?这就是本文要讲的Decorator模式
·
2015-11-13 19:02
Decorator
步步为营 .NET
设计模式学习笔记
十二、Observer (观察者模式)
概述 在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。 一个软件系统常常要求在某一个对象的状态发生变化的时候,某些其它的对象做出相应的改变。做到这
·
2015-11-13 19:01
observer
步步为营 .NET
设计模式学习笔记
十一、Iterator(迭代器模式)
概述 在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部的数据。面向对象设计原则中有一条是类的单一职责原则,所以我们要尽可能的去分解这些职责,用不同的类去承担不同的职责。Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不
·
2015-11-13 19:00
iterator
步步为营 .NET
设计模式学习笔记
十三、Bridge (桥接模式)
概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。 桥梁模式是一个非常有用的模式,也是比较复杂的一个模式。熟悉这个模式对于理解面向对象的设计原则,包括"开-闭"原则(OCP)以及组合/聚合复用原则(CA
·
2015-11-13 19:00
bridge
步步为营 .NET
设计模式学习笔记
十、Builder(建造者模式)
概述 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?这就是要说的建造者模式。 本文通过
·
2015-11-13 19:59
builder
步步为营 .NET
设计模式学习笔记
七、Proxy(代理模式)
概述 在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要的复杂性,这时候可以在客户程序和目标对象之间增加一层中间层,让代理对象来代替目标对象打点一切。这就是本文要说的Proxy模式。 意图 代理(Proxy)模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。 代理模式的英文叫做Proxy或
·
2015-11-13 19:58
proxy
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
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
其他