`
kinglun
  • 浏览: 40714 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多
      以前记得写过设计模式,那时只是强行记忆,如今根据自己的感想准备重新整理一下自己的知识点,并加入自己的思想。
简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式。
缺点:
 1、新增产品的时候必须修改工厂类中的实现逻辑;
优点:
 1、客户端不知道产品是怎么创建的,只要知道产品的参数就行,一定形式上增加了系统灵活性;
原理:
 由陈抽象产品定义好产品的共同特性,再由工厂通过客户端的参数自动生成产品经他
 
步骤:
  1、设计产品接口
  2、实现产品接口
  3、建立工厂并用静态方法创建产品,静态方法中必须有产品的标识
 
应用场景:
 1、连接不同的数据库
 2、网站语言的国际化
 3、根据客户端的信息做出不一样的决策

 

 

源码:

抽象产品

package com.kinglun.designPattern._1factory.simple;

//产品接口 其他产品必须实现这个接口

public interface Mobile {

      public String mobileInfo();

}

 

具体产品

package com.kinglun.designPattern._1factory.simple;

//手机苹果信息

public class Apple implements Mobile {

      @Override

       public String mobileInfo() {

             return "产品名:苹果,价格:¥5888,cpu:2,产地:美国";

       }

}

 

package com.kinglun.designPattern._1factory.simple;

//三星实现手机的接口

public class Samsung implements Mobile {

      @Override

      public String mobileInfo() {

            return "产品名:三星,价格:¥3444,cpu:2,产地:韩国";

      }

}

 

package com.kinglun.designPattern._1factory.simple;

//手机工厂

public class MobilFactory {

//静态方法创建手机

public static Mobile creatMobile(String mobilName){

      Mobile mobile = null;

      switch (mobilName) {

               case "Samsung":

               mobile = new Samsung();

               break;

               case "Apple":

               mobile = new Apple();

               break;

         }

        return mobile;

     }

}

 测试

package com.kinglun.designPattern._1factory.simple;

 

public class Test {

     public static void main(String[] args) {

           Mobile samsung = MobilFactory.creatMobile("Samsung");

           System.out.println(samsung.mobileInfo());

           Mobile apple = MobilFactory.creatMobile("Apple");

           System.out.println(apple.mobileInfo());

     }

}

1
0
分享到:
评论
2 楼 kinglun 2014-04-08  
小菜鸟蜕变之路 写道
switch()里面能有string类型吗?

jdk8的特性
1 楼 小菜鸟蜕变之路 2014-04-07  
switch()里面能有string类型吗?

相关推荐

Global site tag (gtag.js) - Google Analytics