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
JAVA设计模式
java设计模式
中:单行设计模式
/*设计模式:(不是编代码,是规律经验,是思想)即:解决某一类问题最行之有效的方法。java中23种设计模式:单行设计模式:解决一个类在内存只存在一个对象。想要保证对象唯一。1,为了避免其他程序过多建立该类对象。先禁止其他程序建立该类对象2,还为了让其他程序可以访问到该类对像,只好在本类中,自定义一个对象方式。3,为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。这三部怎么用代码实现呢
longyongzhen
·
2014-04-16 22:09
java
学习
Java设计模式
之从[游戏中开启宝箱]分析中介者(Mediator)模式
假设我们正在设计一个游戏房间,房间里有两个按钮和一个宝箱,如果我们按下了按钮1,则按钮2和宝箱均不可使用;如果我们按下了按钮2,则按钮1和宝箱均不可使用;如果我们打开宝箱,则按钮1不可按下。在上面的例子中,我们可以看到两个按钮和一个宝箱之间存在着依赖关系,它们之间的状态是有关联的。假设按钮类叫做Button,宝箱类叫做Chest,我们需要避免Button、Chest之间相互连接,我们应当建立一个中
Froser
·
2014-04-16 21:49
从实例角度分析Java设计模式
JAVA设计模式
之单例模式
本文继续介绍23种设计模式系列之单例模式。概念:java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。单例模式有以下特点:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对
jason0539
·
2014-04-16 06:00
设计模式
java设计模式
java设计模式
之abstract + interface = 缺省设计模式
理java中解abstract class和 Interface 1.面向对象思想,我觉得最关键的就是抽象。 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了。当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用呢,面
Supanccy2013
·
2014-04-16 00:00
设计模式
JAVA设计模式
之单例模式
本文继续介绍23种设计模式系列之单例模式。概念:java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。单例模式有以下特点:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对
炸斯特
·
2014-04-16 00:00
Java设计模式
Java设计模式
之从[计算器]分析解释器(Interpreter)模式
解释器模式是一种广泛运用于编译器的设计模式。它的意图是给定一个语言,定义它的文法的一种表示,并定义一个解释器来解释语言中的句子。本篇的内容和“游戏”无关,是从编译原理的角度来对这个模式进行解释,因为它几乎只出现在编译器中。下面简单介绍一下编译原理中的文法定义。文法定义可以理解为用类似正则表达式来定义一个文法,它由终结符、非终结符组成。简单来说,终结符是指的具体的符号,非终结符是指的具有递归性质的某
Froser
·
2014-04-15 18:03
从实例角度分析Java设计模式
JAVA设计模式
(07):结构型-桥接模式(Bridge)
在正式介绍桥接模式之前,我先跟大家谈谈两种常见文具的区别,它们是毛笔和蜡笔。假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3×12=36支,但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜料盒即可,涉及到的对象个数仅为 3+12=15,远小于36,却能实现与36支蜡笔同样的功能。如果增加一种新型号的画笔,并且也需要具有12种颜色,对应的蜡笔需增加
dreamsunday
·
2014-04-15 16:00
java
设计模式
桥接模式
JAVA设计模式
(06):结构型-适配器模式(Adapter)
我的笔记本电脑的工作电压是20V,而我国的家庭用电是220V,如何让20V的笔记本电脑能够在220V的电压下工作?答案是引入一个电源适配器(ACAdapter),俗称充电器或变压器,有了这个电源适配器,生活用电和笔记本电脑即可兼容,如图1所示:图1 电源适配器示意图 在软件开发中,有时也存在类似这种不兼容的情况,我们也可以像引入一个电源适配器一样引入一个称之为适配器的角色来协调这些存
dreamsunday
·
2014-04-15 15:00
java
设计模式
适配器模式
JAVA设计模式
(05):创建型-原型模式(Prototype)
张纪中版《西游记》以出乎意料的造型和雷人的台词遭到广大观众朋友的热议,我们在此对该话题不作过多讨论。但无论是哪个版本的《西游记》,孙悟空都是其中的一号雄性主角,关于他(或它)拔毛变小猴的故事几乎人人皆知,孙悟空可以用猴毛根据自己的形象,复制(又称“克隆”或“拷贝”)出很多跟自己长得一模一样的“身外身”来。在设计模式中也存在一个类似的模式,可以通过一个原型对象克隆出多个一模一样的对象,该模式称之
dreamsunday
·
2014-04-15 15:00
java
设计模式
原型模式
JAVA设计模式
(04):创建型-建造模式(Builder)
没有人买车会只买一个轮胎或者方向盘,大家买的都是一辆包含轮胎、方向盘和发动机等多个部件的完整汽车。如何将这些部件组装成一辆完整的汽车并返回给用户,这是建造者模式需要解决的问题。建造者模式又称为生成器模式,它是一种较为复杂、使用频率也相对较低的创建型模式。建造者模式为客户端返回的不是一个简单的产品,而是一个由多个部件组成的复杂产品。1 游戏角色设计Sunny软件公司游戏开发小组决定开发一款名为
dreamsunday
·
2014-04-15 10:00
java
设计模式
builder
建造模式
Java设计模式
之从[打飞机游戏中的控制器]分析命令(Command)模式
首先请允许我啰嗦几句。为什么我们在软件设计过程中强调设计模式?为软件增加设计模式确实会增加一定的代码复杂程度,但是它的好处是无穷的。它可以使得软件更加易于扩展而无需改变源代码。“解耦”是设计模式中的一个关键词。例如,对于某个对象obj,在调用obj.method()时,我们希望obj是一个基类或者是一个接口,而不是一个具体的实现类,用这种方式来实现解耦。下面进入正题。假设我正在做一个打飞机的游戏,
Froser
·
2014-04-15 00:39
java设计模式
command
命令模式
设计模式
Java
从实例角度分析Java设计模式
JAVA设计模式
(03):创建型-单例模式(Singleton)
3.1单例模式的动机 对于一个软件系统的某些类而言,我们无须创建多个实例。举个大家都熟知的例子——Windows任务管理器,如图3-1所示,我们可以做一个这样的尝试,在Windows的“任务栏”的右键弹出菜单上多次点击“启动任务管理器”,看能否打开多个任务管理器窗口?如果你的桌面出现多个任务管理器,我请你吃饭,(注:电脑中毒或私自修改Windows内核者除外)。通常情况下,无论我们启动任
dreamsunday
·
2014-04-14 15:00
java
单例
设计模式
创建型
JAVA设计模式
(02):创建型-抽象工厂模式(Abstract Factory)
工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,我们可以考虑将一些相关的产品组成一个“产品族”,由同一个工厂来统一生产,这就是我们本文将要学习的抽象工厂模式的基本思想。 1 界面皮肤库的初始设计 Sunny软件公司欲开发一套界面皮肤库,可以对Jav
dreamsunday
·
2014-04-14 13:00
java
设计模式
抽象工厂
Java设计模式
之从[使命召唤等游戏的任务提示]分析职责链(Chain Of Responsibility)模式
我们在使命召唤、暗黑破坏神等游戏时,总会接到各种各样的游戏任务,如到某某地方解救某人,或者消灭某某地方的敌人等。当玩家进入到某一个地图(以下称之为游戏场景)时,我们就可以查看它的任务提示。在这个机制下,我们认为,所有的游戏场景都继承于一个类(如HelpHandler),这个类包含一个显示任务提示的方法(如showHelp)。问题在于,任务的提示是有“上下文联系的”,任务的提示是和你的“场景是如何移
Froser
·
2014-04-14 11:00
java
设计模式
chain
职责链模式
of
Responsibil
Java设计模式
之从[游戏场景读取]分析代理(Proxy)模式
在大型游戏中(如刺客信条、使命召唤等),我们需要读取的地图往往是很大的。如果我们在进入游戏时,把所有的地图信息都读出来,会花费很多的时间。那么,为了提高效率,我们采取的措施是,我们并不需要真正把这些元素读取出来,可以先用一些“不怎么需要时间开销的替代品”(也就是我们谈到的代理)来代替这些需要花一定时间读取的实例,等到我们真正需要这些实例的时候,再将这些“替代品”换成实例即可。例如,在一个射击游戏
Froser
·
2014-04-13 18:00
java
设计模式
proxy
代理模式
Java设计模式
之从[Dota地图]分析享元(Flyweight)模式
在Dota游戏的地图中有几百棵树,现在假设这些树木无非是这两种:白杨、枫树,数量一共为400棵,那么,在装载这个地图场景的时候,我们是不是应该给这400课树一一建立对象呢?(如:MapItemtree1=newMapItem("白杨");MapItemtree2=newMapItem("枫树");MapItemtree3=newMapItem("白杨");……)哪怕这些语句写在循环中减少了我们代码
Froser
·
2014-04-12 08:00
java
设计模式
flyweight
享元
java动态代理(JDK和cglib)
From:http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.htmlJAVA的动态代理 代理模式 代理模式是常用的
java设计模式
,他的特征是代理类与委托类有同样的接口
chengwenyao18
·
2014-04-10 18:00
Java设计模式
之从"我想请个秘书!"分析外观(Facade)模式
在银行办业务的时候,经常会碰到如下情况:先填写一张表A,再填写一张表B,然后根据表A和表B的内容填写表C……各种各样的流程绕得人头昏眼花,最后我实在受不了了,问银行:你们这里有没有一条龙服务?!我好想请个秘书!把这些乱七八糟的工作丢给他做啊!上述的例子和外观模式有些像。例如,我们有很多子系统,为了完成某项任务,它们之间的调用十分复杂,为了降低它的复杂程度,我们引入一个外观对象(Facade,就像上
Froser
·
2014-04-09 22:00
java
设计模式
Facade
外观模式
Java设计模式
之再从[暗黑破坏神"装备镶嵌宝石系统"]分析装饰(Decorator)模式
在暗黑破坏神等RPG游戏中,会遇到如下的一些场景:我有一把很普通的武器,我通过给它“注入魔法力量”、“镶嵌宝石”,来使得它拥有一些攻击特效:例如,一把普通长剑,镶嵌红宝石后,可以附带火焰伤害,镶嵌了一个蓝宝石后,可以使得长剑攻击带有冰冻伤害。如何实现上述的机制呢?首先我们想到的是继承,因为,一个镶嵌了红宝石、蓝宝石的长剑,一定是一个镶嵌了宝石的长剑,并且一定一把长剑。如此下来,程序的结构会很复杂,
Froser
·
2014-04-08 22:24
Java
设计模式
装饰模式
Decorator
从实例角度分析Java设计模式
Java设计模式
之再从[暗黑破坏神"装备镶嵌宝石系统"]分析装饰(Decorator)模式
在暗黑破坏神等RPG游戏中,会遇到如下的一些场景:我有一把很普通的武器,我通过给它“注入魔法力量”、“镶嵌宝石”,来使得它拥有一些攻击特效:例如,一把普通长剑,镶嵌红宝石后,可以附带火焰伤害,镶嵌了一个蓝宝石后,可以使得长剑攻击带有冰冻伤害。如何实现上述的机制呢?首先我们想到的是继承,因为,一个镶嵌了红宝石、蓝宝石的长剑,一定是一个镶嵌了宝石的长剑,并且一定一把长剑。如此下来,程序的结构会很复杂,
Froser
·
2014-04-08 22:00
java
设计模式
Decorator
装饰模式
Java设计模式
之从[魔兽世界包裹系统]分析组合(Composite)模式
RPG游戏中的包裹(或者称为背包)是玩家携带物品的地方,它的大小决定着玩家能够携带物品数量。如在魔兽世界中,玩家起初的物品栏(将物品栏视为玩家的唯一一个包裹)的格子很少,但是玩家可以将新的包裹放在物品栏中,达到扩充物品栏的效果。也就是说,物品栏可以放消耗品、武器等零散的物品,当然也可以放包裹。假定魔兽世界有如下设定:玩家一开始拥有一个默认的包裹(物品栏),玩家可以获得新的包裹放在物品栏上。包裹可以
Froser
·
2014-04-08 21:00
java
设计模式
组合模式
composite
JAVA设计模式
之原型模式
定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了
jason0539
·
2014-04-08 08:00
java设计模式
JAVA设计模式
之工厂模式(简单工厂模式+工厂方法模式)
在面向对象编程中,最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下,new操作符直接生成对象会带来一些问题。举例来说,许多类型对象的创造需要一系列的步骤:你可能需要计算或取得对象的初始设置;选择生成哪个子对象实例;或在生成你需要的对象之前必须先生成一些辅助功能的对象。在这些情况,新对象的建立就是一个“过程”,不仅是一个操作,像一部大机器中的一个齿
炸斯特
·
2014-04-07 17:10
设计模式
Java设计模式
JAVA设计模式
之工厂模式(简单工厂模式+工厂方法模式)
在面向对象编程中,最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下,new操作符直接生成对象会带来一些问题。举例来说,许多类型对象的创造需要一系列的步骤:你可能需要计算或取得对象的初始设置;选择生成哪个子对象实例;或在生成你需要的对象之前必须先生成一些辅助功能的对象。在这些情况,新对象的建立就是一个“过程”,不仅是一个操作,像一部大机器中的一个
jason0539
·
2014-04-07 17:00
java
设计模式
java设计模式
工厂模式
java设计模式
之命令模式Command
定义:将"请求"封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。抽象命令类(Command):声明执行操作的接口。调用接收者相应的操作,以实现执行的方法Execute。具体命令类(ConcreteCommand):创建一个具体命令对象并设定它的接收者。通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。调用者(Invoker):要求该命令执行这个请
Alps
·
2014-04-07 17:25
设计模式
Java设计模式
之从[暗黑破坏神"装备镶嵌宝石系统"]分析桥接(Bridge)模式
暴雪公司著名的游戏暗黑破坏神中,有一个经典的"镶嵌系统",例如,可以为武器镶嵌红宝石、蓝宝石来得到攻击特效或攻击力加成,为防具镶嵌红宝石、蓝宝石来得到攻击特效或者防御力的加成。不同的宝石加在不同的装备上会有不同效果,如宝石加在武器上则提升武器攻击力,加在防具上则提升防御力。假设我们建立了一个剑类(Sword)和一个盾类(Shield),建立了一个红宝石类(Ruby)和一个蓝宝石类(Sapphire
Froser
·
2014-04-07 15:27
从实例角度分析Java设计模式
Java设计模式
之从[暗黑破坏神"装备镶嵌宝石系统"]分析桥接(Bridge)模式
暴雪公司著名的游戏暗黑破坏神中,有一个经典的"镶嵌系统",例如,可以为武器镶嵌红宝石、蓝宝石来得到攻击特效或攻击力加成,为防具镶嵌红宝石、蓝宝石来得到攻击特效或者防御力的加成。不同的宝石加在不同的装备上会有不同效果,如宝石加在武器上则提升武器攻击力,加在防具上则提升防御力。假设我们建立了一个剑类(Sword)和一个盾类(Shield),建立了一个红宝石类(Ruby)和一个蓝宝石类(Sapphire
Froser
·
2014-04-07 15:00
java
设计模式
bridge
桥接
暗黑破坏神
Java设计模式
之从[鼠标接口][星际争霸中的兵种行为]分析适配器(Adapter)模式
适配器将一个类的接口转换成客户希望的另外一个接口。下面用三个例子来反映适配器的不同用途:情况一:我买了一个PS2接口的鼠标,但是我的电脑没有PS2的接口,仅有USB的接口。为了不浪费这个鼠标,我跑到商店买了一个PS2到USB的转接头,这样我就用上了PS2的鼠标。USB转接头就是一个典型的适配器。interfaceUSBPort{ voidconnect(); } interfacePS2Port
Froser
·
2014-04-07 00:00
java
设计模式
Adapter
适配器
Java设计模式
之从[反恐精英控制台]分析单例(Singleton)模式
所谓单例模式(Singleton),就是保证一个类仅有一个实例,并提供一个访问它的全局访问点的模式。玩过反恐精英的同学应该都知道,游戏当中是有个控制台的,我们可以通过按`键(波浪线键)调出这个控制台。控制台的目的是为了方便开发人员调试,当然我们也可以在里面来修改一些游戏参数,如输入SV_GRAVITY100可以把重力调整到100,那么我们跳跃的高度就是原来的8倍了。由于控制台的游戏的全局通用的,因
Froser
·
2014-04-06 20:00
java
单例
设计模式
Singleton
Java设计模式
之从[魔兽世界副本]分析原型(Prototype)模式
“副本”是网络游戏任务的一种形式,它最初出现于无尽的任务,现在运用得最有名的就是魔兽世界的副本了,我们将它称为副本任务。副本任务一般是一个队伍的人一起闯关的,假设有队伍A、队伍B、队伍C,分别对同一个副本任务发出挑战,他们在副本任务中的行为是不相干的。也就是说,A队伍在副本任务中消灭boss、开启宝箱,不会对B、C两支队伍造成任何影响,B、C同理。因此,“副本”可以理解成,从任务的原型中拷贝,然后
Froser
·
2014-04-06 12:00
设计模式
prototype
原型模式
副本
Java设计模式
之从[Dota的武器创建]分析生成器(Builder)模式
Dota可谓是当下最流行的游戏之一,玩家分为两队,分别是天辉(近卫)和夜魇(天灾),每队5个人,通过补刀、杀敌获取经验和金钱,金钱可用来购买强大的武器,最终推倒敌方基地则获胜。我们现在考虑一个最简单的武器组成元素:武器是由武器名、攻击力、武器颜色组成,我们要想办法实现能够新建各种各样武器的一个模式。假设我们预设了两种武器,分别是圣剑(攻击力300,黄色)、圣者遗物(攻击力60,蓝色),我将试着用生
Froser
·
2014-04-06 00:13
Java
设计模式
Builder
生成器模式
从实例角度分析Java设计模式
Java设计模式
之从[Dota的武器创建]分析生成器(Builder)模式
Dota可谓是当下最流行的游戏之一,玩家分为两队,分别是天辉(近卫)和夜魇(天灾),每队5个人,通过补刀、杀敌获取经验和金钱,金钱可用来购买强大的武器,最终推倒敌方基地则获胜。我们现在考虑一个最简单的武器组成元素:武器是由武器名、攻击力、武器颜色组成,我们要想办法实现能够新建各种各样武器的一个模式。假设我们预设了两种武器,分别是圣剑(攻击力300,黄色)、圣者遗物(攻击力60,蓝色),我将试着用生
Froser
·
2014-04-06 00:00
java
设计模式
builder
生成器模式
Java设计模式
之从[星际争霸1]分析抽象工厂模式
抽象工厂模式是创建型模式之一。创建型模式有工厂模式(抽象工厂、工厂方法)、生成器模式、单体模式、原型模式四种。下面我来简单分析一下抽象工厂模式。抽象工厂模式的定义是创建一个提供一系列相关或相互依赖对象的接口,而无需指定它们具体的类。所有的创建型模式有一个特点,我们不关心工厂生产出来的具体对象的类型,我们会将其具体的类与工厂分离开来。这么说的话,很抽象难懂,下面是一个关于星际争霸的例子。在游戏星际争
Froser
·
2014-04-05 22:00
java
设计模式
游戏
抽象工厂
星际争霸
JAVA设计模式
之享元模式
解释一下概念:也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。比如说一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象。如果有一个1M的文本,那么字母是何其的多,如果每个字母都定义一个对象那么内存早就爆了。那么如果要是每个字母都共享一个对象,那么就大大节约了资源。在Flyweight模式中,由于要产生各种各样的对象,
jason0539
·
2014-04-04 07:00
java设计模式
一起学
Java设计模式
--工厂方法模式(不在23种设计模式之内)
(2) 工厂方法模式海尔工厂(Haier)生产海尔空调(HaierAirCondition),美的工厂(Midea)生产美的空调(MideaAirCondition) 。使用工厂方法模式描述该场景,绘制类图并编程实现。publicinterfaceAirCondition{ voidwork(); } publicinterfaceAirConditionFactory{ AirCondit
panxianwen2012
·
2014-04-03 18:00
设计模式
一起学
Java设计模式
--简单工厂模式(不在23中设计模式之内)
(1) 简单工厂模式使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象,每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。//抽象图形 publicinterfac
panxianwen2012
·
2014-04-03 16:00
java设计模式
JAVA设计模式
之门面模式(外观模式)
医院的例子现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。首先病人必须先挂号,然后门诊。如果医生要求化验,病人必须首先划价,然后
jason0539
·
2014-04-02 07:00
设计模式
JAVA设计模式
之代理模式
【代理模式应用场景举例】比如在玩“极品飞车”这款游戏,如果游戏者手中的金钱达到了一定的数量就可以到车店买一部性能更高的赛车,那么这个卖车的“车店”就是一个典型的“汽车厂家”的“代理”,他为汽车厂家“提供卖车的服务”给有需求的人士。从面向对象的方面考虑,“销售汽车的代理”也是一个对象,那么这个对象也具有一定的状态,在软件项目中这个对象也具有管理财务进销存的基本功能,那么在设计时就要以面向OOP编程的
jason0539
·
2014-04-02 07:00
设计模式
Java设计模式
(写在前面的话)
前言 一直想系统的学习一下设计模式,刚好看到程杰的《大话设计模式》。此次设计模式系列的博文主要以《大话设计模式》参考对象,里面会有借鉴书中的内容,如有侵犯版权,请告知,本人会第一时间内删除此系列的博文。 如有侵权,请联系:
[email protected]
目录 《简单工厂模式》 《策略模式》 《遵守的原则》 《装饰模式》 《代理模式》 《工厂方法模式》
duanyanrui
·
2014-04-01 20:00
设计模式
java设计模式
JAVA设计模式
初探之装饰者模式
这个模式花费了挺长时间,开始有点难理解,其实就是定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。 要点:
jason0539
·
2014-04-01 09:00
java设计模式
java设计模式
@ 工厂方法模式
学习一下: 转载自:http://blog.csdn.net/chmask/article/details/2631485 1.工厂方法模式(FactoryMethod) 将程序中创建对象的操作,单独拿出来处理,创建一个产品的工厂接口,把实际的工作转移到具体的子类(这个子类是工厂的子类)。大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的抽象模式。 publicclas
yangqingqo
·
2014-03-31 21:00
java中的动态代理
JAVA的动态代理 代理模式 代理模式是常用的
java设计模式
,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。
村长kylin
·
2014-03-31 12:00
JAVA设计模式
初探之组合模式
先看看组合模式的定义吧:“将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。” 就拿剪发办卡的事情来分析一下吧。 首先,一张卡可以在总部,分店,加盟店使用,那么总部可以刷卡,分店也可以刷卡,加盟店也可以刷卡,这个属性结构的店面层级关系就明确啦。 那么,总店刷卡消费与分店刷卡消费是一样的道理,那么总店与分店对会员卡的使用也具有一致性
jason0539
·
2014-03-31 08:00
设计模式
JAVA设计模式
初探之组合模式
先看看组合模式的定义吧:“将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。” 就拿剪发办卡的事情来分析一下吧。 首先,一张卡可以在总部,分店,加盟店使用,那么总部可以刷卡,分店也可以刷卡,加盟店也可以刷卡,这个属性结构的店面层级关系就明确啦。 那么,总店刷卡消费与分店刷卡消费是一样的道理,那么总店与分店对会员卡的使用也具有一致性
炸斯特
·
2014-03-31 00:00
设计模式
Java设计模式
pattern目录
单例模式 AbstractFactory 工厂方法模式 简单工厂模式 Builder Prototype 2、结构型
java
·
2014-03-30 09:00
Pattern
JAVA设计模式
初探之桥接模式
生活中的一个例子: 拿汽车在路上行驶的来说。既有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同的类型,它们所行驶的环境(路)也有不同类型,在软件系统中就要适应两个方面(不同车型,不同道路)的变化,怎样实现才能应对这种变化呢?概述:在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”
jason0539
·
2014-03-30 08:00
设计模式
面向对象
桥接模式
JAVA设计模式
之策略模式(2)商场打折
个人小结:1.我们要打折,给什么打折要抽象,打折的方式由打折的对象提供2.打折的对象决定自己如何打折的时候也不要写死,有打折方式接口来做3.最后给出的是打折方式的接口实现即可了OO的基础后,开始认真学习设计模式。首先学习的是Strategy,下面就封装商场打折策略来分析下策略模式是怎样一回事。商场每逢节假日都会对不同的商品采用不同的打折策略,首先卖苹果的说我的苹果要打折,好的,我们建立Market
rnZuoZuo
·
2014-03-30 00:00
JAVA设计模式
之策略模式(1)
1.排序口诀冒择(选择)路(插入)兮(希尔)快(快速)归(归并)堆(堆排序)2.inta[]={2,4,8,3,7}首先我们写了一个方法,对此数组进行了排序3.如果我们需要对float数组排序那么我们再写一个方法对float数组进行排序4.如果我们需要对double数组排序那么我们再写一个方法对double数组进行排序5.现在我们要对Cat类比较大小,怎么比较呢?我们想对Cat比较大小,怎么办呢?
rnZuoZuo
·
2014-03-29 23:00
JAVA设计模式
初探之适配器模式
1.概述将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。2.解决的问题即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。下面是两个非常形象的例子3.模式中的角色3.1目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。3.2需要适配的类(Adaptee):需要适
炸斯特
·
2014-03-29 07:18
设计模式
Java设计模式
JAVA设计模式
初探之适配器模式
1.概述将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。2.解决的问题即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 下面是两个非常形象的例子 3.模式中的角色3.1目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。3.2需要适
jason0539
·
2014-03-29 07:00
上一页
131
132
133
134
135
136
137
138
下一页
按字母分类:
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
其他