Правильно ли я пишу? Работа с интерфейсом и двумя классами с аналогичными методами - C#
Формулировка задачи:
Народ подскажите ли правильно я поступаю. У меня в задании по курсовой есть клиенты и обьекты у них есть добавление,удаление,поиск,редактирование и тдп. Я решил сделать интерфейс так как эти методы почти аналогичные
Вот как все в интерфейсе смотрится
а вот как в классе обьект
а вот в классе клиент
Вопрос ли не крыво я делаю. Может не стоит все через интерфейс завязывать) Думаю будет страдать понимаемость что в том методе должно хранится)
Елементарные операции хранить в интерфейсе было написано в задании) Я как начал так и все вышло обобщить и кинуть в интерфейс))
void add(object obj);
void delete(object obj);
void edit(int index, int indexparam, object info);
object view(object obj);
object viewall();
object sort(int indexparam,object obj); public void add(object realty)
{
realtys.Add((Realty)realty);
}
public void delete(object index)
{
realtys.RemoveAt((int)index-1);
}
public void edit(int index, int indexparam, object info)
{
int indexrealty = index -1;
switch (indexparam)
{
case 1:
realtys[indexrealty].Name = (string)info;
break;
case 2:
realtys[indexrealty].Vartist = (int)info;
break;
case 3:
realtys[indexrealty].Mrozt = (string)info;
break;
} public void add(object client)
{
clients.Add((Client)client);
}
public void delete(object npassport)
{
clients.Remove(clients.Find(x => x.Npassport == (int)npassport));
}
public void edit(int npassport, int indexparam , object info)
{
int indexclient = clients.FindIndex(x => x.Npassport == (int)npassport);
switch (indexparam)
{
case 1:
clients[indexclient].Name = (string)info;
break;
case 2:
clients[indexclient].Surname = (string)info;
break;
case 3:
clients[indexclient].Npassport = (int)info;
break;
case 4:
clients[indexclient].Adres = (string)info;
break;
case 5:
clients[indexclient].Telefon = (int)info;
break;
case 6:
clients[indexclient].Nombank = (int)info;
break;
case 7:
clients[indexclient].Tipneruh = (string)info;
break;
case 8:
clients[indexclient].Vcena = (int)info;
break;
}
}Решение задачи: «Правильно ли я пишу? Работа с интерфейсом и двумя классами с аналогичными методами»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2 {
class Program {
static void Main(string[] args) {
}
}
interface Manipulation<T> {
void Add(T arg);
void Delete(T arg);
T view(T arg);
}
class ObjectManipulation<T> : Manipulation<T> where T : class {
List<T> list = new List<T>();
public void Add(T arg) {
list.Add(arg);
}
public void Delete(T arg) {
}
public T view(T arg) {
}
}
}