zoukankan      html  css  js  c++  java
  • 设计模式 创建型模式实践



    //---------------------------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








  • 相关阅读:
    ajax _02【XML响应,post请求】
    ajax_01【httpRequest.responseText】
    方法的定义【js函数】
    Promise基本用法
    promise
    筛选(1)
    ng-cli 中HTTP请求思路(1) (接口请求处理)
    PHP占用CPU过高几种思路
    关于tcpdump的那点事~
    虚拟机固定IP那点事
  • 原文地址:https://www.cnblogs.com/boydfd/p/4983139.html
Copyright © 2011-2022 走看看