静态工厂模式

又称简单工厂模式。
它是由一个工厂类所根据传入的参量决定创建出哪一种产品类的实例。
它涉及到3个角色
1。工厂类角色(Creator):这个角色时工厂模式的核心,工厂类再客户端的直接调用下创建产品对象,它往往由一个具体JAVA类实现。
2。抽象产品角色(Product):担任这个角色的类是由工厂方法模式所创建的对象的父类或者接口。抽象产品角色可以用接口或者抽象类实现。
3。具体产品角色(Concrete Product):工厂方法模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体JAVA类来实现。

    简单工厂模式的缺点是进行功能扩展比较困难。按下面例子来说,如果增加一个形状,那么就要修改工厂方法
的源代码,违背了“开闭”原则。
    开闭原则:就是在不修改代码的情况下扩展其功能。
-----------------------------------------------
写了个静态工厂模式的例子

public class test{
  public static sharp factory(String s) throws badException
 {
  if(s.equals("circle")){ // 当传入的参数==circle时,return实例化的circle
  return new circle();
  }
   else if(s.equals("retangle"))
  {
  return new retangle();
 }
  else{
  throw new badException("error");// 抛出异常,必须捕获异常
  }
 }
  public static void main(String[] args){
   try{
    test.factory("circle");// 调用static method
   }
   catch(badException e){
    System.out.println (e);
   }
  
  }
 }


 class circle implements sharp{
  public circle(){
   this.draw();
  }
  public void draw(){
   System.out.println ("draw1");
  }
  public void del(){
   System.out.println ("del1");
  }
 }

 class retangle implements sharp{
  public void draw(){
   System.out.println ("draw2");
  }
  public void del(){
   System.out.println ("del2");
  }
 }


 class badException extends Exception{
  public badException(String s){
   super(s);
  }
 }
// 定义接口
 interface sharp{
  public void draw();
  public void del();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值