Класс должен иметь только одну ответственность, одно назначение (класс выполняет лишь одну задачу).
Принцип единственной ответственности означает что каждый объект должен иметь одну ответственность и эта ответственность должна быть полностью
инкапсулирована в класс. Все его поведения должны быть направлены исключительно на обеспечение этой ответственности.
C#
Создаем новое C# консольное приложение... и напишем код
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
// класс Book
class Book
{
// информация о книге
public string BookName { get; set; }
public string AuthorName { get; set; }
public string Content { get; set; }
// отображение книги
public void Show(IDevice device)
{
string text = String.Format("Название:{0}, автор:{1}, текст:{2}", BookName, AuthorName, Content);
device.Display(text);
}
}
// интерфейс IDevice
interface IDevice
{
void Display(string data);
}
// класс WindowsConsole реализует интерфейс IDevice
class WindowsConsole : IDevice
{
public void Display(string text)
{
Console.WriteLine(text);
}
}
// главный класс программы
class Program
{
static void Main(string[] args)
{
// создаем книгу
Book book1 = new Book();
// заполняем книгу
book1.BookName = "Властелин Колец";
book1.AuthorName = "Толкин";
book1.Content = "Когда-то давным давно жили эльфы... Эльфы пили молоко и кушали сыр...";
// показываем книгу на экране
IDevice device = new WindowsConsole();
book1.Show(device);
// на экране увидим
// Название:Властелин Колец, автор:Толкин, текст:Когда-то давным давно жили эльфы... Эльфы пили молоко и кушали сыр...
}
}
}
C#
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
// класс Book
class Book
{
// информация о книге
public string BookName { get; set; }
public string AuthorName { get; set; }
public string Content { get; set; }
}
// класс BookDisplay
class BookDisplay
{
// отображение книги
public void Show(Book book, IDevice device)
{
string text = String.Format("Название:{0}, автор:{1}, текст:{2}", book.BookName, book.AuthorName, book.Content);
device.Display(text);
}
}
// интерфейс IDevice
interface IDevice
{
void Display(string data);
}
// класс WindowsConsole реализует интерфейс IDevice
class WindowsConsole : IDevice
{
public void Display(string text)
{
Console.WriteLine(text);
}
}
// главный класс программы
class Program
{
static void Main(string[] args)
{
Book book1 = new Book();
// заполняем книгу
book1.BookName = "Властелин Колец";
book1.AuthorName = "Толкин";
book1.Content = "Когда-то давным давно жили эльфы... Эльфы пили молоко и кушали сыр...";
// показываем книгу на экране
IDevice device = new WindowsConsole();
BookDisplay bookDisplay = new BookDisplay();
bookDisplay.Show(book1, device);
// на экране увидим
// Название:Властелин Колец, автор:Толкин, текст:Когда-то давным давно жили эльфы... Эльфы пили молоко и кушали сыр...
}
}
}
В библиотеке
C# есть класс
ArrayList (массив элементов, которые можно добавлять, удалять, перебирать).
То есть класс
ArrayList выполняет 1 задачу по работе с элементами и соответствует
Принципу единственной обязанности.
Принципу единственной обязанности соответствуют все
классы коллекций в C#...