一段代码,其中一个方法求解释

jackrong427 2013-01-22 02:35:22
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
abstract class BaseClass
{
public static BaseClass bsclass(string stype)
{
switch (stype)
{
case "A":
return new A();
case "B":
return new B();
default:
return null;
}
}

public abstract string ShowMsg();
}

class A : BaseClass
{
public override string ShowMsg()
{
return "FactoryA";
}

}

class B : BaseClass
{
public override string ShowMsg()
{
return "FactoryB";
}
}
class Program
{
static void Main(string[] args)
{
BaseClass baseclass = BaseClass.bsclass("A");
Console.WriteLine(baseclass.ShowMsg());
}
}
}


------------------------------------------
在BaseClass类中,public static BaseClass bsclass(string stype){}
这个是什么?不是构造函数吧
...全文
138 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙泉剑 2013-01-22
  • 打赏
  • 举报
回复
从设计模式上说这个是简单工厂模式,构造函数的函数前面一定和类名是一致的,所以不是构造函数,你也可以把他看成是一般的方法
catchdream 2013-01-22
  • 打赏
  • 举报
回复
你百度下“简单工厂”,就能看到详细的模式及代码。这个相当于把工厂和这个基类合二为一。 本来简单工厂就不是一个很好的模式,违背了开放-封闭原则。这个变化就更。。。。
wanghui0380 2013-01-22
  • 打赏
  • 举报
回复
简单工厂 就相当与一堆民工挂靠在一包工头身边,然后包工头喊小A干活去,小A去刷墙了,因为小A的干活方法实现的是刷墙这活
  • 打赏
  • 举报
回复
一个静态方法,返回一个BaseClass 的实例
烟灰洒落键盘 2013-01-22
  • 打赏
  • 举报
回复
静态方法,返回一个BaseClass
  • 打赏
  • 举报
回复
这个方法体内调用了构造函数,应该是用的抽象工厂设计模式

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧