Читайте также:
|
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Permit
{
class Program
{
static void Main(string[] args)
{
Creator myCreator = new Creator();
List<IDocument> forPrint = new List<IDocument>();
/*
myDocument = myCreator.GetDocument("Sokol");
Console.WriteLine(myDocument.GetInfoDocument());
myDocument = myCreator.GetDocument("Rozetka");
Console.WriteLine(myDocument.GetInfoDocument());
*/
for (int i = 0; i < 5; i++)
forPrint.Add(myCreator.GetDocument2("Rozetka"));
for (int i = 0; i < 5; i++)
forPrint.Add(myCreator.GetDocument2("Sokol"));
for (int i = 0; i < 5; i++)
forPrint.Add(myCreator.GetDocument2("Foxtrot"));
for (int i = 0; i < 5; i++)
forPrint.Add(myCreator.GetDocument2("Eldorado"));
foreach(IDocument tmp in forPrint)
{
Console.WriteLine(tmp.Print());
}
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Permit
{
interface IDocument
{
string Print();
}
class Order: IDocument
{
public string Print()
{
return "Ордер";
}
}
class Creator
{
private static Permit _permanentPermit = new PermanentPermit();
private static Permit _temporaryPermit = new TemporaryPermit(new DateTime(2014, 4, 15));
private static Permit _oneTimePermit = new OneTimePermit();
public IDocument GetDocument(string firm)
{
if (firm.ToLower() == "rozetka")
{
int key = 0;
Console.WriteLine("Тип:\n1-Постійна\n2-Тимчсова\n3-Одноразова");
while (true)
{
try
{
Console.Write("Ваш вибір: ");
key = Convert.ToInt32(Console.ReadLine());
break;
}
catch
{
continue;
}
}
if (key == 1)
return _permanentPermit.Clone();
else if (key == 2)
return _temporaryPermit.Clone();
else if (key == 3)
return _oneTimePermit.Clone();
}
else if (firm.ToLower() == "sokol")
return new Order();
return null;
}
public IDocument GetDocument2(string firm)
{
if (firm.ToLower() == "rozetka")
return _permanentPermit.Clone();
else if (firm.ToLower() == "eldorado")
return _temporaryPermit.Clone();
else if (firm.ToLower() == "foxtrot")
return _oneTimePermit.Clone();
else if (firm.ToLower() == "sokol")
return new Order();
return null;
}
}
abstract class Permit: IDocument
{
protected string _typeOfPermit;
public Permit(string type)
{
_typeOfPermit = type;
}
public Permit Clone()
{
Permit tmp = (Permit)this.MemberwiseClone();
return tmp;
}
public virtual string Print()
{
return ("Перепустка: " + _typeOfPermit);
}
}
//Постійна
class PermanentPermit: Permit
{
public PermanentPermit(): base("Постійна") { }
}
//Тимчасова
class TemporaryPermit: Permit
{
private int _validDay;
private string _validMonth;
private int _validYear;
public TemporaryPermit(DateTime date)
: base("Тимчасова")
{
_validDay = date.Day;
_validMonth = date.Month.ToString();
_validYear = date.Year;
}
public override string Print()
{
return ("Перепустка: " + _typeOfPermit + " діє до(" + _validDay + " " + _validMonth + " " + _validYear + ")");
}
}
//Одноразова
class OneTimePermit: Permit
{
public OneTimePermit(): base("Одноразова") { }
}
}
Скріншоти
Рис. 2 результат виконання першої програми
Дата добавления: 2015-11-14; просмотров: 30 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
UML-діаграмма класів | | | Текст 2-ї програми |