想请教下关于工厂模式的设计思路。。。

zl58859173 2009-08-31 03:14:30
第一次研究工厂模式,看了很多介绍但是还是没有设计思路。。。想麻烦这里的高手给小弟指点一下。。
自己想做一个小程序用工厂模式做。
构想如下:
程序2个大模块,一个是书籍的管理,有3张表,分别是书籍的信息。。
另一个是体育器材的管理,有5张表,分别是体育器械的信息。。。
这2个模块都要实现增删改查的操作。。。而且后续说不定还要加入数码产品,服饰之类的模块。。
不知道这个设计该怎么做才最合理呢??
麻烦高手给出明确指示。。
小弟不胜感激。。。谢谢。。。。
...全文
140 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
o_____Smile_____o 2009-08-31
  • 打赏
  • 举报
回复
原来工厂可以这么用

恍然大悟

我们书上举的例子太烂了
xiangbupingfan 2009-08-31
  • 打赏
  • 举报
回复
模式不是一般程序员干的
让爱延续 2009-08-31
  • 打赏
  • 举报
回复
我是新手,留名学习。不过我给楼主提个醒,不是任何项目都适合用工厂模式去做,有时候强用工厂模式反而会事倍功半,得不尝失的。
guohouchang 2009-08-31
  • 打赏
  • 举报
回复
这个东西别人讲再多也没用。建议楼主自己动手写个工厂模式~ 就明白了。

设计模式讲起来很抽象。理解需要一定的时间
tabbycat 2009-08-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yuxuanji 的回复:]
先完成功能
日后再重构到模式
[/Quote]

还是需要做抽象分析滴,重构的时间成本太高了,对程序员的要求更高
robin521 2009-08-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yuxuanji 的回复:]
先完成功能
日后再重构到模式
[/Quote]

这个观点我同意,很多代码都是重构出来的.

还有超级工厂模式!
LutzMark 2009-08-31
  • 打赏
  • 举报
回复
先完成功能
日后再重构到模式
lijing3333 2009-08-31
  • 打赏
  • 举报
回复
我觉得新手, 还是不要太去看那了。 太不明白。 自己以后整体技术提升了!再去研究会比较好!!
ADVANTECH_CYZ 2009-08-31
  • 打赏
  • 举报
回复
悉心学习
wuyq11 2009-08-31
  • 打赏
  • 举报
回复
Public interface IFruit
{
}
public class Orange:IFruit
{
 public Orange()
 {
  Console.WriteLine("orange!");
 }
}

public class Apple:IFruit
{
 public Apple()
 {
  Console.WriteLine("apple!");
 }
}
public class FruitFactory
{
 public Orange GetOrange()
 {
  return new Orange();
 }
 public Apple GetApple()
 {
  return new Apple();
 }
}

string FruitName = Console.ReadLine();
IFruit MyFruit = null;
FruitFactory MyFruitFactory = new FruitFactory();

switch (FruitName)
{
 case "Orange":
  MyFruit = MyFruitFactory.GetOrange();
  break;
 case "Apple":
  MyFruit = MyFruitFactory.GetApple();
  break;
 default:
  break;
}

public class FruitFactory
{
 public IFruit MakeFruit(string Name)
 {
  IFruit MyFruit = null;
  try
  {
   Type type = Type.GetType(Name,true);
   MyFruit = (IFruit)Activator.CreateInstance(type);
  }
  catch (TypeLoadException e)
   Console.WriteLine("{0}" ,e.Message);
   return MyFruit;
 }
}
wuyq11 2009-08-31
  • 打赏
  • 举报
回复
抽象工厂模式提供了一个创建一系列相关或相互依赖对象的接口,运用抽象工厂模式的关键点在于应对“多系列对象创建”的需求变化。
简单工厂 也叫静态工厂:涉及到工厂角色,抽象产品,以及具体产品角色等。
一般情况下就是根据参数数据返回一个适当的子类,然后用基类或接口引用具体的对象,而不用考虑该实际对象的产生过程.
interface If
class a : interface If
class b : interface If
使用时要根据实据情况调用那个类 就在工厂类中实现
mbh0210 2009-08-31
  • 打赏
  • 举报
回复
interface Idataoperate{
info 你自己定义吧
bool add(){}
bool update(){}
bool delete(){}
}

bookoperate : Idataoperate
{
}


static Idataoperate Getobject( string tableName)
{
Idataoperate dataoperate = null ;
switch(tableName){
case "book":
dataoperate = new bookoperate();
break;
}
}


参考一下,当然还有很多细节,自己琢磨琢磨
zl58859173 2009-08-31
  • 打赏
  • 举报
回复
那到底该怎么设计呢?还是不懂噢。
mbh0210 2009-08-31
  • 打赏
  • 举报
回复
定义一个接口
包含数据信息
增加、删除、修改方法

每个表都实现这个操作,有统一的地方根据表名创建对象.
cdd1012 2009-08-31
  • 打赏
  • 举报
回复
工厂模式有以下几种形态:
简单工厂(Simple Factory)模式
工厂方法(Factory Method)模式
抽象工厂(Abstract Factory)模式
zl58859173 2009-08-31
  • 打赏
  • 举报
回复
没人嘛?顶一下。。。

110,529

社区成员

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

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

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