Правильно ли я пишу? Работа с интерфейсом и двумя классами с аналогичными методами - 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) {
            
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы