简单工厂模式

      以前记得写过设计模式,那时只是强行记忆,如今根据自己的感想准备重新整理一下自己的知识点,并加入自己的思想。
简单工厂模式(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());

     }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值