参考,有帮助或启发麻烦点个采纳【本回答右上角】,谢谢~~
1)
using System;
namespace ConsoleApp1
{
class Program
{
public abstract class Factory { public abstract Animal Create(); }
public class MonkeyFactory : Factory
{
public override Animal Create() { return new Monkey(); }
}
public class TiggerFactory : Factory
{
public override Animal Create() { return new Tigger(); }
}
public class BirdFactory : Factory
{
public override Animal Create() { return new Bird(); }
}
public abstract class Animal
{
public abstract void Eat();
public abstract void DoAction();
public abstract void Sound();
}
public class Monkey : Animal
{
public override void Eat()
{
Console.WriteLine("吃香蕉");
}
public override void DoAction()
{
Console.WriteLine("上树");
}
public override void Sound()
{
Console.WriteLine("吱吱");
}
}
public class Tigger : Animal
{
public override void Eat()
{
Console.WriteLine("吃肉");
}
public override void DoAction()
{
Console.WriteLine("奔跑");
}
public override void Sound()
{
Console.WriteLine("哇哇");
}
}
public class Bird : Animal
{
public override void Eat()
{
Console.WriteLine("吃虫");
}
public override void DoAction()
{
Console.WriteLine("飞走");
}
public override void Sound()
{
Console.WriteLine("叽叽喳喳");
}
}
static void Main(string[] args)
{
Console.Write("请输入动物名称:");
var name = Console.ReadLine().Trim() ;
Factory f;
if (name == "老虎") f = new TiggerFactory();
else if (name == "猴子") f = new MonkeyFactory();
else f = new BirdFactory();
var a = f.Create();
while (true)
{
Console.Write("请输入指令:e d w,其他退出:");
var cmd = Console.ReadLine();
switch (cmd)
{
case "e":a.Eat(); break;
case "d":a.DoAction(); break;
case "w":a.Sound(); break;
default:cmd = "";break;
}
if (cmd == "") break;
}
}
}
}
2)
using System;
namespace ConsoleApp1
{
class Program
{
public interface IDataHelp
{
void Insert(string name, string phone);
}
public class SqlHelp : IDataHelp
{
public void Insert(string name, string phone)
{
var conn = new System.Data.SqlClient.SqlConnection("server=.;uid=sa;pwd=xxxx;database=xxxdb");//注意改驱动
var cmd = new System.Data.SqlClient.SqlCommand("insert into xxxtable(name,phone)values('" + name + "','" + phone + "')",conn);
cmd.ExecuteNonQuery();
conn.Close();
Console.WriteLine(name + "\t" + phone);
}
}
public class FileHelp : IDataHelp
{
public void Insert(string name, string phone)
{
//注意改文件路径
System.IO.File.AppendAllText(@"f:\xxx.txt", name + "\t" + phone+"\n", System.Text.Encoding.UTF8);
Console.WriteLine(name + "\t" + phone);
}
}
public class DataHelpFactory
{
public static IDataHelp Create()
{
var d =(int) DateTime.Now.DayOfWeek;
if (d == 6 || d == 0) return new FileHelp();
return new SqlHelp();
}
}
static void Main(string[] args)
{
var help = DataHelpFactory.Create();
help.Insert("test", "13900001111");
Console.ReadKey();
}
}
}
思路:
1.先定义对应的动物的类,创建动物对象;
2.把所有动物对象放在hashmap里面,名字为key;
3.通过输入的名字把对应动物对象取出来,并显示在页面。