设计模式_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 设计模式 >>列表
看到很多朋友在写单例,也来凑个热闹,虽然很简单,但是也有很多知识点在单例里面,看看是否能写出点不一样来。单例模式(Singleton)1场景问题1.1读取配置文件的内容考虑这样一个应用,读取配置文件的内容。很多应用项目,都有与应用相关的配置文件,这些配置文件多是由项目开发人员自定义的,在里面定义一些应用需要的参数数据。当然在实际的项目中,这种配置文件多采用xml格式的。也有采用properties格式的,毕竟使用Java来读取properties格式的配置文件比较简单。现在要读取配置文件的内容... 查看全文
定义一个软件实体(如类、模块、函数)应当对扩展开放,对修改关闭。定义解读在项目开发的时候,都不能指望需求是确定不变化的,大部分情况下,需求是变化的。那么如何应对需求变化的情况?这就是开放-关闭原则要谈的。开放-封闭原则的思想就是设计的时候,尽量让设计的类做好后就不再修改,如果有新的需求,通过新加类的方式来满足,而不去修改现有的类(代码)。那么在实际的项目开发中,是否能做到绝对的对修改关闭呢?答案一般也是否定的。既然这样,那么就要求我们在开发前,去找出变化点,然后针对变化点构造抽象... 查看全文
· 设计模式之适配器模式发布时间:2013-11-24
博主博客地址:胡旭个人博客1概述适配器模式(Adapter),说白了就是为了挂羊头卖狗肉而专门设计的模式。也就是把一个类的接口变换成客户端所期待的另一种接口。适配器模式通过定义一个新的接口(对要实现的功能加以抽象),和一个实现该接口的Adapter(适配器)类来透明地调用外部组件。这样替换外部组件时,最多只要修改几个Adapter类就可以了,其他源代码都不会受到影响。还是以手机为例子,每一种机型都自带有从电器,有一天自带充电器坏了,而且市场没有这类型充电器可买了,怎么办?万能充电器就可以解决... 查看全文
基于组合的方式实现模板设计:Java代码/***基于组合实现模板设计模式*@authorAdministrator**/publicclassCombineTemplate{//链接数据库publicvoidbeginConnection(){System.out.println("connsuccess");}//关闭数据库的链接publicvoidcloseConnection(){System.out.println("closesuccess");}/***调用方法... 查看全文
基于组合的方式实现模板设计:/***基于组合实现模板设计模式*@authorAdministrator**/publicclassCombineTemplate{//链接数据库publicvoidbeginConnection(){System.out.println("connsuccess");}//关闭数据库的链接publicvoidcloseConnection(){System.out.println("closesuccess");}/***调用方法... 查看全文
推荐博客:胡旭个人博客相关博文:http://www.ihuxu.com/p/103.html好久没有写博客啦,之前看完了《设计模式之禅》也没有总结一下,现在回忆一下设计模式之观察者模式。1.什么是观察者模式简单情形:有A、B、C、D等四个独立的对象,其中B、C、D这三个对象想在A对象发生改变的第一时间知道这种改变,以便做出相应的响应或者对策。上面的这种情形,就是观察者模式。当然可以有多个观察者,多个被观察者。观察者与被观察者也不是对立的,一个对象可以观察其他对象,也可以被其他对象观察。2... 查看全文
一、抽象工厂模式四个组成部分:抽象产品接口、具体产品、抽象工厂接口、具体工厂抽象工厂可以包含不同的工厂,不同的工厂可以创建出相通目标类的不同实例interfaceIProductA{voidProductA();}interfaceIProductB{voidProductB();}classProductAOne:IProductA{publicvoidProductA(){Console.WriteLine("ProductsA--One");}}classProductATwo... 查看全文
· 设计模式-建造者模式发布时间:2013-11-12
建造者模式将一个复杂对象的构造与它的表示分离,使得同样的构建过程可以创建不同的表示。1、例子解释:同样一种菜肴,同样的菜谱,不同的厨师炒出品位可能不一样,虽然加入的佐料一样,但是北方的厨师炒的口味可能比较重,而南方的厨师的则比较清淡。这就是“同样的构建过程可以创建不同的表示”。2、UML类图:Product类:具体的产品;Director类:指挥者,构建一个使用Builder接口的对象;Builder接口:是为创建一个Product对象的各个组件指定的抽象接口;ConcreteBuilder类... 查看全文
· 设计模式之中介者模式发布时间:2013-11-11
中介者模式所谓中介者模式是指“用一个中介对象来封装一些列的对象交互,中介者是各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互”。1、UML类图如下;2、代码如下:中介者packagetest.patterns.mediator;//抽象中介者类publicabstractclassMediator{publicabstractvoidsend(Stringinfo,Schoolgirlschoolgirl);}packagetest.patterns... 查看全文
· 关于生活中的设计模式(二)发布时间:2013-11-05
上篇文章中讨论了以“每个过程”为观察点来处理订单流程。我们定义了一个接口IAction1:publicinterfaceIAction2:{3:voidDoA();4:voidDoB();5:voidDoC();6:....7:}还定义了每个过程“拍下商品”、“付钱到支付宝”…1:publicclass拍下商品:IAction2:{3:voidDoA();4:voidDoB();5:voidDoC();6:... 查看全文
· 生活中的设计模式发布时间:2013-11-04
设计模式这个概念应该大家都很不陌生了。这么多模式当中其实真正用到的,实际上很少。正由于用的少导致我们刚刚开始学习的时候相当困难!然而呢,实际项目中由架构师设计的框架都是充满了设计模式的气息,让我们这些“菜鸟”望而生畏,总是被Leader推着走。接下来我就从我的一些项目案例来讲下我理解的所谓模式。案例一淘宝买过东西的人都应该知道一个流程:“拍下商品”->“付款到支付宝”->“卖家发货”... 查看全文
· 设计模式-责任链模式发布时间:2013-11-04
责任链模式-ChainofResponsiblity从名字来看,一条链,连接许多对象,将数据从链头开始传递,一直到有人接收处理,有点类似于工业生产线的功能。定义:责任链模式属于行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。举例:员工需要公司拨钱,于是上报头头项目经理... 查看全文
· 设计模式-简单工厂模式发布时间:2013-10-29
一、对工厂模式的理解1、简单工厂模式属于类的创建模式,又称静态工厂方法模式;2、通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都是具有共同的父类;3、角色3.1工厂角色-Creator:它是简单工厂模式的核心,负责实现创建所有实例的内部逻辑,工厂类可以被外界直接调用,创建所需的产品对象;3.2抽象角色-Product:简单工厂模式所创建的所有对象的父类,它负责描述所有实例共有的公共接口;3.3具体产品-ConcreteProduct:简单工厂模式所创建的具体实例对象;二... 查看全文
一、引言提到模板,大家肯定不免想到生活中的“简历模板”、“论文模板”、“Word中模版文件”等,在现实生活中,模板的概念就是——有一个规定的格式,然后每个人都可以根据自己的需求或情况去更新它,例如简历模板,下载下来的简历模板的格式都是相同的,然而我们下载下来简历模板之后我们可以根据自己的情况填充不同的内容要完成属于自己的简历。在设计模式中,模板方法模式中模板和生活中模板概念非常类似... 查看全文
· 设计模式-装饰模式发布时间:2013-10-28
DecoratorPattern,又叫装饰模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的特点:(1)装饰对象和真实对象有相同的接口。客户端可以用与真实对象相同的方式和装饰对象交互。(2)装饰对象包含一个真实对象的引用(reference)。(3)装饰对象接受所有来自客户端的请求,它把这些请求转发给真实的对象。(4)装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时... 查看全文
一、引言在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象,然后客户端只需要访问代理对象,由代理对象去帮我们去请求目标对象并返回结果给客户端,这样的一个解决思路就是今天要介绍的代理模式。二、代理模式的详细介绍代理模式按照使用目的可以分为以下几种:远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代表对象... 查看全文
· Java设计模式学习心得总结发布时间:2013-10-27
一、创建模式1.设计模式之Factory(工厂方法和抽象工厂)使用工厂模式就象使用new一样频繁.2.设计模式之Prototype(原型)用原型实例指定创建物件的种类,並且通过拷贝这些原型创建新的物件。3.设计模式之Builder汽车由车轮方向盘发动机很多部件组成,同时,将这些部件组装成汽车也是一件複杂的工作,Builder模式就是将这两种情况分开进行。4.设计模式之Singleton(单态)保證一个类只有一个实例,並提供一个访问它的全局访问点二、结构模式1... 查看全文
一、引言在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然而享元模式可以解决这个问题,下面具体看看享元模式是如何去解决这个问题的。二、享元模式的详细介绍在前面说了,享元模式可以解决上面的问题了,在介绍享元模式之前,让我们先要分析下如果去解决上面那个问题,上面的问题就是重复创建了同一个对象,如果让我们去解决这个问题肯定会这样想:&ldquo... 查看全文
· 设计模式视频教程来啦发布时间:2013-10-26
这是尚学堂科技出的一套关于Java设计模式的视频教程,其实设计模式并不是Java所特有,任何语言都可以根据其原理设计出相应的设计模式来。在设计模式领域有一句话:尽信设计模式不如不信设计模式!希望此视频教程能让你的编码更上一层楼。本套视频教程的内容有:尚学堂马士兵设计模式热身ThinkingInOO(一)尚学堂马士兵设计模式热身ThinkingInOO(二)尚学堂马士兵设计模式热身ThinkingInOO(三)尚学堂马士兵设计模式热身ThinkingInOO(四... 查看全文
· 设计模式视频教程来啦发布时间:2013-10-26
这是尚学堂科技出的一套关于Java设计模式的视频教程,其实设计模式并不是Java所特有,任何语言都可以根据其原理设计出相应的设计模式来。在设计模式领域有一句话:尽信设计模式不如不信设计模式!希望此视频教程能让你的编码更上一层楼。本套视频教程的内容有:尚学堂马士兵设计模式热身ThinkingInOO(一)尚学堂马士兵设计模式热身ThinkingInOO(二)尚学堂马士兵设计模式热身ThinkingInOO(三)尚学堂马士兵设计模式热身ThinkingInOO(四... 查看全文