学习笔记.
假设要实现洗衣机的洗衣服功能.
1.建立一个IWash的接口,定义一个洗衣服的方法
2.建立滚筒洗衣机和波轮洗衣机分别实现IWash的接口
3.建立一个工厂类,提供一个方法根据洗衣机的类型(波轮,滚筒)选择由哪个洗衣机洗衣服
具体java实现代码如下:
IWasher
package com.liu.pattern1;
public interface IWasher {
public void wash();
}
BLWasher
package com.liu.pattern1;
public class BLWasher implements IWasher {
@Override
public void wash() {
System.out.println("波轮洗衣机洗衣服了");
}
}
GTWasher
package com.liu.pattern1;
public class GTWasher implements IWasher {
@Override
public void wash() {
System.out.println("滚筒洗衣机洗衣服了");
}
}
SimpleWasherFactory
package com.liu.pattern1;
//简单工厂
public class SimpleWasherFactory {
public static IWasher createWahser(String opName){
if("滚筒".equals(opName)){
return new GTWasher();
}else if("波轮".equals(opName)){
return new BLWasher();
}else{
return null;
}
}
public static void main(String[] args){
String opName = "滚筒";
IWasher washer = SimpleWasherFactory.createWahser(opName);
washer.wash();
}
}
C#代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace com.liu.pattern1
{
public interface IWasher {
void Wash();
}
public class BLWasher : IWasher {
public void Wash() {
System.Console.WriteLine("波轮洗衣机洗衣服了");
}
}
public class GTWasher : IWasher {
public void Wash()
{
System.Console.WriteLine("滚筒洗衣机洗衣服了");
}
}
public class SimpleWasherFactory
{
public static IWasher CreateWasher(String opName) {
switch (opName)
{
case "滚筒": return new GTWasher();
case "波轮": return new BLWasher();
default: return null;
}
}
static void Main(string[] args)
{
String opName = "波轮";
IWasher washer = SimpleWasherFactory.CreateWasher(opName);
washer.Wash();
System.Console.ReadKey();
}
}
}