工厂模式

   //创建一个接口
	public interface Shape
	{
		 void draw();
	}
	//创建实现接口的实体类
	public  class Rectangle :Shape
	{
		//@override
		public void draw(){
			Report.Info("Square::shape().menthod");
		}
	}
	
	public  class Circle :Shape{
		//@override
		public void draw(){
			Report.Info("Circle::shape().menthod");
		}
	}
	public  class Square : Shape{
		//@override
		public void draw(){
			Report.Info("Square::shape().menthod");
		}
	}
	//创建一个工厂,生成基于给定信息的实体类的对象
	public class ShapeFactory
	{
		public Shape getShape(string shape){
				
				if(shape=="null"){
					return null;
				}
				else if(shape.Equals("Rectangle")){
				return new Rectangle();
				}
			    else if(shape.Equals("Circle")){
				return new Circle();
				}
				else if(shape.Equals("Square")){
				return new Square();
				}
				return null;
			}
	}
  //使用该工厂,通过传递类型信息来获取实体类的对象。
  ShapeFactory shapefactory=new ShapeFactory();
  Shape shape=shapefactory.getShape("Rectangle");
            
  shape.draw();
            
  Shape Square=shapefactory.getShape("Square");
  Square.draw();
            
  Shape Circle=shapefactory.getShape("Circle");
  Circle.draw();

枚举优化

       public enum ShapeType{
		    CIRCLE,
		    RECTANGLE,
		    SQUARE
		}
        public  void Factory(){
        	//使用该工厂,通过传递类型信息来获取实体类的对象。
        	ShapeFactory shapefactory=new ShapeFactory();
        	
        	Shape shape=shapefactory.getShape(ShapeType.CIRCLE.ToString());
            
            shape.draw();
        }

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值