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

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 设计模式 >>列表
· IOS设计模式之单例模式发布时间:2014-12-07
待补充。... 查看全文
· 设计模式(16)---原型模式发布时间:2014-12-05
一、定义原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。解释:有一个设计非常复杂的对象,如果需要得到多个这样对象的时候,可以先创建一个原型对象,然后使用原型对象clone出新的对象,从而实现减少内存消耗和类实例复用的目的。二、UML类图及基本代码基本代码:abstractclassPrototype{privatestringid;publicstringID{get{returnid;}}publicPrototype(stringid){this.id=id;... 查看全文
· 设计模式(15)---享元模式发布时间:2014-12-05
一、定义享元模式:运用共享技术有效地支持大量细粒度的对象。解释:需要大量重复new一个对象时,使用享元模式可以让你减少对象的初始化,从而减小内存开销。太苍白了,理解的不到位,希望自己以后补充吧。二、UML类图及基本代码基本代码:publicabstractclassFlyweight{publicabstractvoidOperation(intextrinsicstate);}publicclassConcreteFlyweight:Flyweight... 查看全文
· 设计模式杂谈 - 单例发布时间:2014-12-02
单例模式是使用最为普遍的模式之一。它属于创建模式,确保系统中该类型的类只被实例化一次。也许有误解,认为单例是在jvm进程中只有一个实例,其实是在同一个Classloader下面仅被实例化一次。Singleton通常用来表示本质上唯一的系统组件,比如文件系统,窗口管理器,系统全局的配置之类的。在Java语言中,单例能带来一些好处:1.对于频繁使用的对象,可以省略创建对象所花费的时间,特别对于重量级的对象,可以节省很大的开销。2.有new操作的次数减少,对内存的使用频率也会有所降低,减轻GC的负担... 查看全文
· 设计模式(14)---组合模式发布时间:2014-11-28
一、定义组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。解释:简单来说,编写一个类,该类能作用于整体,并且编写整体中的部分时也能使用该类,而不用做大的更改。二、UML类图及基本代码基本代码:abstractclassComponent{protectedstringname;publicComponent(stringname){this.name=name;}publicabstractvoidAdd... 查看全文
命令模式(CommandPattern)是对象的行为模式,其意图是将请求封装在对象的内部。命令模式涉及的角色有:客户端(Client)角色:负责创建一个具体的命令,并指定命令的接受者命令(Command)角色:定义一个命令公共的操作接口具体命令(ConcreteCommand)角色:定义一个命令的接收者和行为之间的耦合。实现命令接口的公共接口,调用接收者的相应操作。请求者(Invoker)角色:负责调用命令对象执行请求。接收者(Receiver)角色:负责具体实施和执行一个请求示例... 查看全文
· 设计模式之简单工厂发布时间:2014-11-19
一、定义简单工厂其实不是一个设计模式,反而比较像是一种编程习惯。二、类图三、示例///<summary>///披萨商店///</summary>publicclassPizzaStore{publicPizzaStore(){}publicPizzaOrderPizza(stringtype){Pizzapizza;pizza=SimplePizzaFactory.CreatePizza(type);pizza.Prepare();pizza.Bake();pizza... 查看全文
· 设计模式之策略模式发布时间:2014-11-18
一、定义策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。二、设计原则1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。2、针对接口编程,而不是针对实现编程。3、多用组合,少用继承。三、示例///<summary>///鸭子类///</summary>publicabstractclassDuck{protectedIFlyBehaviorflyBehavior... 查看全文
· java设计模式-单例模式发布时间:2014-11-18
单例模式1,饿汉模式//饿汉式单例类.在类初始化时,已经自行实例化publicclassSingleton1{//私有的默认构造函数privateSingleton1(){}//已经自行实例化privatestaticfinalSingleton1single=newSingleton1();//静态工厂方法publicstaticSingleton1getInstance(){returnsingle;}}单例模式2,懒汉模式//懒汉式单例类... 查看全文
一、场景最近需要在页面上展现一个通过http请求微信服务接口而生成的带参二维码,用户扫描后可以体验到关注公众号、显示一些动态消息、注册会员等功能。然而在测试的中发现通过微信接口生成二维码这个过程偶尔会发生超时或者其他异常,这时候需要把图片替换为一张静态的二维码图片;如果这种情况在一段期间内反复发生(譬如微信接口服务突然挂了),将会影响用户使用我们系统的体验,因此需要有个fallback的策略。二、静默模式策略设置请求接口生成动态二维码的http超时和线程超时时间... 查看全文
· 设计模式(13)---外观模式发布时间:2014-11-17
一、定义外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。解释:简单来说,客户端需要调用一个特别复杂的子系统中的多个接口,如果直接调用逻辑处理起来会非常复杂,而且不便于系统扩展。外观模式把这个复杂的子系统统一起来,提供几个高层接口,以备客户端进行调用。通俗来说是:子系统是一个黑匣子,提供若干个透明接口以备调用。二、UML类图及基本代码基本代码:classProgram{staticvoidMain(string[]args)... 查看全文
· 设计模式(12)---适配器模式发布时间:2014-11-13
一、定义适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。解释:适配器模式好比一个电源适配器,生活中房间内的电压是220v,但是你的很多用电器就不是220v,比如电脑、手机等等,这是需要电源适配器来调节电压,使用电源适配器充电的过程就相当于适配器模式。二、UML类图、基本代码基本代码:classProgram{staticvoidMain(string[]args){Targettarget=newAdapter... 查看全文
· 设计模式(9)---建造者模式发布时间:2014-11-05
一、定义建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。解释:使用建造者模式,用户只需要指定需要构造的类型就可以得到它们,而具体建造的过程和细节就不需要知道。二、UML类图三、基本代码classProgram{staticvoidMain(string[]args){Directordirector=newDirector();Builderbuilder1=newConcreteBuilder1();director.Construct(builder1... 查看全文
单例模式,可以说是GOF的23种设计模式中最简单的一个。这个模式相对于其他几个模式比较独立,它只负责控制自己的实例化数量单一(而不是考虑为用户产生什么样的实例),很有意思,是一个感觉上很干净的模式,本人很喜欢这个模式。android中很多地方都用到了单例模式,本文以输入法管理者InputMethodManager为例,展开分析。单例模式,SingletonPattern,能够以其特有的优势,替代系统中全局变量,应用非常广泛。1.意图保证一个类仅有一个实例,并提供一个访问它的全局访问点。热门词汇... 查看全文
观察者(Observer)模式也叫发布/订阅(Publish/Subscribe)模式,是MVC(模型-视图-控制器)模式的重要组成部分。天气一直是英国人喜欢讨论的话题,而最近几年天气的变化也成为中国人非常关注的话题。我会根据天气预报决定是坐地铁还是开车上班,我的女儿也会根据天气预报决定明天穿哪件衣服。于是我在移动公司为我的手机定制了天气预报短信通知服务,它的工作模型如图所示。每天气象局将天气预报信息投送给移动运营商,移动运营商的短信中心负责把天气预报发送给定制过这项服务的手机。在软件系统中... 查看全文
引言“设计模式”这个让程序员提起来就“酷”的东东,着实让让初学设计模式的programer自我陶醉一番。太多的经历,告诉我们“凡事都要个度,要学会适可而止”,否则过犹不及。“设计模式”也一样,切莫为了“模式”而模式(初学者demo除外),那就失去了GOF等老前辈提出设计模式的初衷(可复用面向对象软件的基础)。常见应用程序中的三层架构三层架构(3... 查看全文
装饰器模式(DecoratorPattern)又名包装模式(WrapperPattern)。装饰模式以对客户透明的方式扩展对象的功能,是继承关系的一种替代。装饰器模式(DecoratorPattern)中的各个角色:抽象构件(Componet)角色:给出一个抽象接口,规范准备接收附加责任的对象。具体构件(ConcreteComponet)角色:定义一个将要接收附加责任的类装饰(Decorator)角色:持有一个构件(Componet)对象的实例,并定义一个与构件接口一致的接口具体装饰... 查看全文
· 23种设计模式发布时间:2014-09-30
Java的23种设计模式一:创建型模式工厂方法,抽象工厂,建造者模式,单态模式,原型模式二:构造型模式适配器模式,桥接模式,组合模式,装饰模式,外观模式享元模式,代理模式三:行为型模式责任链模式,命令模式,解释器模式,迭代器模式,中介者模式备忘录模式,观察者模式,状态模式,策略模式,模版方法,访问模式... 查看全文
客户端如果需要使用一个类的实例时通常是使用这个类的构造方法以及setter方法去构建这个类的实例。但是在某些情形下,可能不允许直接调用构造方法或者是为了解决Java的值引用问题。在设计模式中建造者模式、工厂方法、抽象工厂都可以避免客户端直接调用构造方法。同样原型模式也可以解决这个问题。首先需要知道在JAVA中所有的引用都是值引用。/****@authorzhangwei*@version$Id:TestModel.java,v0.12014年9月23日上午9:24... 查看全文
最初面向对象是为了保持状态的针对性:ClassP{状态a,状态b,状态c,状态d,状态e,状态f,...}P的方法:fun1{操作ab}fun2{操作abc}fun3{操作d}fun4{操作ef}...在面向对象使用久了之后,开发者们必定为庞大的状态数量和方法数量而吓退,从而怀疑起面向对象的可用性。于是,设计模式,在反复的推导实践中,被提炼出来用于简化问题:ClassP{状态a,状态b,状态c}ClassM{状态d}ClassN{状态e,状态f}P的方法:fun1{操作ab}fun2... 查看全文