Мне трудно найти лучший и правильный способ сделать это, поэтому я отправляю этот вопрос, если кто-то может мне здесь помочь, поскольку я делаю проект Laravel в PHP.
Итак, давайте представим, что мы создаем приложение для книг, каждая книга состоит из нескольких страниц, у некоторых их 20, а у некоторых может быть 700, если бы мы правильно создали класс или классы для этих книг, как мы сделать это?
Ниже у меня есть несколько способов go об этом, но я не знаю, что сработает и / или какой лучший.
Вариант 1:
<?php
namespace Translation/Logic;
public class Book {
// atributes
public $title;
public $year;
public $author;
public $description;
public $date;
public $language = "English";
// as an atribute maybe we need to have an array of pages here? like
// public $pages = Pages[]??
}
public class Pages {
public number;
public orientation;
public direction;
public page;
public chapter;
public content;
}
Вариант 2:
<?php
namespace Translation/Logic;
abstract class Book {
// atributes
public $title;
public $year;
public $author;
public $description;
public $date;
public $language = "English";
// as an attributes maybe we need to have an array of pages here?
}
public class Pages extends Book {
public number;
public orientation;
public direction;
public page;
public chapter;
public content;
}
// Then create an array of Pages here, but then we have all the attributes of the books in every page, which don't really make sense?
Я почти уверен, что здесь ошибаюсь, и есть более разумный способ сделать это, но просто нужен здесь небольшая помощь.
Если это одно из моих решений, то какой код должен завершать мой код, а также есть ли какие-либо альтернативные способы, кроме моего, и каковы будут плюсы и минусы каждого из них.
Если нет, и я ошибаюсь, то как правильно определять эти классы и почему?
Спасибо, что нашли время ответить мне :)