5分钟浅析简单工厂模式

实例:

比如有个国家的运动员协会他们是负责登记与注册职业运动员的就好像我们国家的体育总局呵呵无论足球篮球还是乒乓球的运动员都必须在这里注册才能拿到我们国家职业运动员牌照)。一家体育俱乐部比如篮球的广东宏远足球的深圳健力宝想获得球员为自己俱乐部效力就必须通过这个运动员协会

根据DIP(面向接口编程)我们可以设计一个“运动员”接口“足球运动员”和“篮球运动员”还有其他运动员都实现“运动员”这个接口而“运动员协会”就是一个简单工厂类它负责实例化“运动员”我们这里的“俱乐部”就是一个客户端Client),不同的“俱乐部”就是不同的客户端

对于不同的俱乐部对象无论是八一还是深圳健力宝),他们都是面向“运动员”接口编程而不用管是“足球运动员”还是“篮球运动员”也就是说实现了“运动员”接口的具体类“足球运动员”无需暴露给客户端这也满足了DIP但具体的俱乐部比如足球的深圳健力宝如何确保自己获取的是自己想要的运动员健力宝俱乐部需要的当然是足球运动员这就需要“运动员协会”这一工厂类了俱乐部通过调用“运动员协会”的具体方法返回不同的实例

 

  下面一张图片,提现了:

足球俱乐部注册一名足球运动员(红色)                 篮球俱乐部注册一名篮球运动员(黑色)

  如果我想添加一个,乒乓球运动员,原有的不用改动,只需添加一个乒乓球类即可.

  一句话概括各干各的,互不相干.

 

 

    

posted @ 2013-09-02 15:00  BHongyi  阅读(188)  评论(0编辑  收藏  举报