设计模式-工厂方法模式

来源:互联网 发布:mastercam车铣复合编程 编辑:程序博客网 时间:2024/06/10 23:06

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

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 {@Overridepublic IWasher createWasher() {return new BLWasher();}}


GTWasherFactory

package com.liu.pattern2;public class GTWasherFactory implements IWasherFactory {@Overridepublic 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 {@Overridepublic void wash() {System.out.println("波轮洗衣机洗衣服了");}}


GTWasher

package com.liu.pattern2;public class GTWasher implements IWasher {@Overridepublic 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();        }    }}


 

0 0
原创粉丝点击