设计模式 创建型模式实践

//---------------------------15/04/10----------------------------

/*创建型模式总结:

1:抽象工厂和工厂方法的对比:

抽象工厂:                  
工厂方法:

1>通过对象组合创建抽象产品。    
通过类继承创建抽象产品。

2>创建多系列产品。            
创建一种产品。

3>必须修改父类的接口菜能支持    
子类化创建者必须重载工厂

新的产品。                 
方法以创建新产品

2:生成器模式和抽象工厂的对比:

抽象工厂:              
生成器模式:

1>构建简单或复杂对象。       
构建复杂对象。

2>以单一步骤构建对象。       
以多个步骤构建对象。

3>以单一方式构建对象。       
以多种方式构建对象。

4>立刻返回产品。            
在构建过程的最后一步返回产品。

5>强调一套产品。            
专注一个特定产品。

*/

/*下面开始创建一个迷宫吧,用以检验创建型模式的学习程度。

1:需求:

1>游戏:控制创建迷宫,人物。

2>迷宫:各种类型的迷宫。

3>人物:主角和敌人。

2:分析:

1>人物:

人物是一个复杂的对象,有多个部件,所以有两个考虑:

1)使用生成器模式创建:

每个部件只需要给定相应的值就能生存。

2)使用原型模式创建:

每个人物都是一样的,只需要改变数值就行。

对比以上两种模式,考虑到其适用性,感觉还是生成器模式比较适合。

选用生成器模式。

2>迷宫:

迷宫是由大量的单元(一个个房间)组成的,房间又包含很多东西:

1)门:房间的4面都有可能是门。

2)墙:房间的4面有3面可能是墙。

3)人:房间中可能存在主角,敌人等。

4)陷阱:炸弹,魔法什么的。

房间:

考虑到房间中间包含什么都是运行时刻决定的,然后一个房间是由多个东西组成的,

所以采用原型模式。

门和墙是差不多的类型:

1)门和墙的两边都是连接着房间。

2)门和墙都可以有不同的属性(木门,木墙之类)(这个貌似涉及了之后的设计模式,貌似是装饰模式)

所以先采用抽象工厂模式,可以创造出一系列的产品(木门和木墙算一个系列)。

人:

上面说过了。

陷阱:

陷阱就有各种类型的陷阱,就先简单地使用工厂方法。

3>游戏:

游戏嘛就是单例模式了。

3:到此为止所有模式都用上了!开始实践:

*/

/*

经过两天的努力,终于还是搞定了。

目前实现的功能有:

1>人:通过生成器模式创建。

可以有属性,有装备。

2>房间:通过原型模式创建。

里面可以设置守卫,可以设置门或墙

3>Site(门或墙):通过抽象工厂创建。同时在编程过程中发现,这东西还是加上原型模式的好

这是由于房间时原型模式的,所以复制的时候要知道Site是门还是墙,使用原型模式就不用考虑这些了。

可以进入门,就到了另一个房间,进入墙返回失败。

4>Game:使用单例模式。其实各种工厂使用的都是单例模式。

*/

代码地址:http://download.csdn.net/detail/boydfd/8585669

时间: 2024-08-05 07:06:18

设计模式 创建型模式实践的相关文章

天天设计模式二:创建型模式实践

天天设计模式二:创建型模式实践 创建型设计模式主要应用在对象创建,以不同的方式来满足系统的灵活性配置.动态注入.等应用场景. 一.单例模式 二.抽象工厂 三.建造者模式 四.工厂方法模式 五.原型模式

JDK 源码 阅读 - 2 - 设计模式 - 创建型模式

A.创建型模式 抽象工厂(Abstract Factory) javax.xml.parsers.DocumentBuilderFactory DocumentBuilderFactory通过FactoryFinder实例化具体的Factory. 使用例子: DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docBuilder

设计模式——创建型模式

简单的说我们可以把23种设计模式可以归为三大类,分别是创建型模式.结构型模式和行为型模式. 今天,首先看一下创建型模式.创建型设计模式包括5种:单例模式(Singleton).工厂方法模式(Factory Method).抽象工厂模式(Abstract Factory).建造者模式(Builder).原型模式(Prototype).  1.单例模式(Singleton)        1)简介 保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式是一种常用的软件设计模式.在它的核心结

C#设计模式-创建型模式(转)

一.简单工厂模式 简单工厂模式Simple Factory,又称静态工厂方法模式.它是类的创建模式.是由一个工厂对象决定创建出哪一种产品类的实例,是不同的工厂方法模式的一个特殊实现. 优点: u 模式的核心是工厂类,该类中含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅负责"消费"产品. u 简单工厂模式实现了对责任的分割. 缺点: u 当产品类有复杂的多层次等级结构时,工厂类只有它自己.以不变应万变. u 模式中工厂类集中了所

【C#设计模式——创建型模式】抽象工厂模式

抽象工厂模式比工厂模式具有更高层次的抽象性.当要返回一系列相关类中的某一个,而每个类都能根据需要返回不同的对象时,可以选择这种模式.直接进入示例. 示例描述:完成花园的规划,多种花园种类,每个里面多种植物 编写一个基类Garden,Garden就是抽象工厂.它定义了具体类中的方法,并返回一系列相关类中的某个类. public class Garden { protected Plant center, shade, border; protected bool showCenter, showS

【C#设计模式——创建型模式】工场方法模式

工场方法模式对简单工场模式进行了乔庙的扩展,不是用一个专门的类来决定实例化哪一个子类.相反,超类把这种决定延迟到每个子类.这种模式实际上没有决策点,就是没有直接选择一个子类实例化的决策. 看书上的例子有点复杂,自己写了一个简单例子: 示例目标:对数组进行定向排序 基类FormatList对指定数组进行排序,具体实现交给子类实现 public abstract class FormatList { public int[] result; protected abstract void Forma

设计模式---创建型模式

一.概况 总体来说设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. (2)结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. (3)行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 二.设计模式的六大原则 1.开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修

java设计模式--创建型模式

2016-04-24 10:10:34 创建型模式:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式 注意:工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory)  这三种模式从上到下逐步抽象,并且更具一般性.GOF在<设计模式>一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory).将简单工厂模式

一起来学设计模式-----创建型模式之简单工厂

一直都特别想整体学习下设计模式,之前总觉得不是时候,觉得基础不够好怕吸收不了,或者体会不到设计模式带来的便利.就在上半年的KPI编写测试桩项目中,我就深刻的感受到设计模式带来的好处.一般测试人员写的代码不是很多,很多时候写代码也都是基于解决问题的逻辑来的,写的代码面向过程思路较多,因此代码的冗余度特别大.在编写一个大的测试工具时,就更应该考虑这方面的问题自己是否存在.刻不容缓的学习起了设计模式,整理就从创建型模式的工厂模式开始入手吧. 创建型模式,共三种:工厂方法模式.建造者模式.原型模式.其中