`
haiwoo
  • 浏览: 12320 次
  • 来自: ...
社区版块
存档分类
最新评论

各国皇帝号召武将大臣们进行练武表演

阅读更多

各国皇帝号召武将大臣们进行练武表演,一个皇帝就是太监侍候

  分析需求:

  各国皇帝,到底是那些皇帝呢,怎么得到皇帝对象     

因此是通过工厂模式设计得到  (可以用spring 注入代替)

  Public Class KingFactory{

      Public static Object getKing(Class clazz){

       Return clazz.newInstance();

}

}

 

//皇帝的对象

  Public Class King{

    //皇帝编号

    Private Integer autoID;

    //皇帝名称

    Private String kingName;

    //侍候皇帝的太监

    Private Eunuch eunuch;

}

 

      号召武将大臣,因此皇帝要写圣旨

      因此先确定圣旨的对象

      Public Class Decree{

                //圣旨编号

                 private Integer autoID;

                //圣旨简要内容

private String content;

//什么武工

private Long gest;

//那位大臣

private Class<?> clazz;

}   

 

因此皇帝对象需要依赖圣旨才能观看武术表演

   但皇帝一般不自己写诏书,因此有命令太监进行完成后就可以看武术表演了

   因此皇帝跟太监应该是采用命令模式

 

 

// 皇帝观看武术比赛主要业务类

 Public Class KingAction{

     Private King king;

       public void setKing(King king){

       this.king=king;
               }

 

//皇帝的太监

  public void setEunuch(Eunuch eunuch){

    king.set(eunuch);

  }

 //皇帝下令写诏书 就可以光看了}

     Public void doDecree(Class<?> clazz, Long gest,String content){

   king.getEunuch().(Class<?> clazz, Long gest,String content);

  }

 

负责写诏书的太监

 

  Public Class Eunuch{

       Private DecreeManager decreeManager;

       //太监写诏书

          public Decree getDecree(Class<?> clazz, Long gest,String content){

              return decreeManager. getDecree (clazz, gest, content);

}

        public void doDecree(){

            decreeManager.doDecree();

        }

}

 

     由太监负责实现写诏书

   //诏书管理

       Public Interface DecreeManager{

               //写诏书

               public Decree getDecree(Class<?> clazz, Long gest,String content);

               //发布诏书

              public void doDecree();

        }

 

   //  写诏书的实现

Public Class DecreeManagerImpl implements DecreeManager {

              private Decree decree;

                //写诏书

                 public void getDecree(Class<?> clazz, Long gest,String content){

                      decree=new Decree(clazz, gest, content);

               }

               //发布诏书

                 public void doDecree(){

                 //发布诏书由诏书指定的武将进行武术表演

                 decree.getClass().newIntance().doGest(decree);

                }

}

 

                 //武将接口

Public Interface General{

//武将表演武术

Public void doGest(Decree decree);

 //武将选择的一类武功

  Public Stragy getStragy(Decree decree);

}

 

         Public Class GeneralImpl implants General{

           Private Stragy stragy;

           Private StragyFactory stragyFactory;

          

           //武将表演武术

           public void doGest(Decree decree){

                       stragy =getStragy(decree);

                    //策略模式根据指定的武功进行表演

                       stragy.do();

              }

                   //武术 工厂模式

      public Stragy getStragy(Decree decree){

            return stragyFactory.getStragy (decree)

             }

}

 

      Public Class StragyFactory{

       Public Stragy getStragy(Decree decree){

      If(decree.getStragyType()==1&&” ShaoLinStragy”.equals(decree.getContent())

  return new ShaoLinStragy();

If(decree.getStragyType()==2&&”WuDangStragy”.equals(decree.getContent())

return new WuDangStragy ();

}

}

 

Public Interface Stragy{

  //武功实现

   Public void do();

}

//少林武术

Public Class ShaoLinStragy implants Stragy{

  Private long stragyType;

Private String content;

  Public void do(){

//一上

//一下

}

}

//武当武术

Public Class WuDangStragy implants Stragy{

Private long stragyType;

Private String content;

  Public void do(){

//一上

//一下

}

}

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics