设计模式-工厂方法模式

跟上次一样还是洗衣服的事.

1.洗衣机部分没有改变,还是一个接口IWash和两个实现类

2.洗衣机工厂发生了改变,首先定义一个洗衣机工厂的接口,然后定义两个洗衣机工厂分别实现它.

Java实现代码如下:

 

IWasherFactory

package com.liu.pattern2;

public interface IWasherFactory {
	public IWasher createWasher();
}


BLWasherFactory

package com.liu.pattern2;

public class BLWasherFactory implements IWasherFactory {

	@Override
	public IWasher createWasher() {

		return new BLWasher();
	}

}


GTWasherFactory

package com.liu.pattern2;

public class GTWasherFactory implements IWasherFactory {

	@Override
	public IWasher createWasher() {
		return new GTWasher();
	}

}


IWasher

package com.liu.pattern2;

public interface IWasher {
	public void wash();
}


BLWasher

package com.liu.pattern2;

public class BLWasher implements IWasher {

	@Override
	public void wash() {

		System.out.println("波轮洗衣机洗衣服了");
	}



}


GTWasher

package com.liu.pattern2;

public class GTWasher implements IWasher {

	@Override
	public void wash() {

		System.out.println("滚筒洗衣机洗衣服了");
	}

}


Test

package com.liu.pattern2;

//工厂方法模式
public class Test {

	public static void main(String[] args) {
		IWasherFactory factory = new BLWasherFactory();
		IWasher washer = factory.createWasher();
		washer.wash();
	}

}


 

C#代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace com.liu.pattern2
{
    public interface IWasherFactory {
        IWasher CreateWasher();
    }

    public class BLWasherFactory : IWasherFactory {
        public IWasher CreateWasher()
        {

            return new BLWasher();
        }        
    }

    public class GTWasherFactory : IWasherFactory
    {
        public IWasher CreateWasher()
        {

            return new GTWasher();
        }
    }

    public interface IWasher {
        void Wash();
    }

    public class GTWasher : IWasher { 
	    public void Wash() {

		    System.Console.WriteLine("滚筒洗衣机洗衣服了");
	    }    
    }

    public class BLWasher : IWasher
    {
        public void Wash()
        {

            System.Console.WriteLine("波轮洗衣机洗衣服了");
        }
    }
    
    class Test
    {
        static void Main(string[] args)
        {
            IWasherFactory factory = new GTWasherFactory();
            IWasher washer = factory.CreateWasher();
            washer.Wash();
            System.Console.ReadKey();
        }
    }
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值