LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

все эти трюки с декораторами, датасорсами и ненаследованием можно провернуть и в с++. руст для этого не нужен. это просто будет такой особенный способ разработки классов.

итак вместо понятия window(у вас это widget) - котрое в соотв. с принципом лисков и было базовым классом, понятием tree_view - которое было реализацией контрола с деревом внутри(которое тоже в соотв с принципов лисков есть window)… то есть у меня есть два понятия .. вы предлагаете что? - widget, tree_view_decorator, tree_view_data_source, tree_view_trait, default_tree_view_trait_impl_as_widget?

код на псевдо-с++

import tree_view;

///класс tree_vew с индентацией элементов - 20
class tree_view_20: public tree_view {
  ///конструктор что создаст окно с индентацией = 20
  tree_view_20() {
    this->set_indent(20);
  }
}

использование:

///в некий book вставляем страницу c таким контролом
some_book_control->add_page(new tree_view_20());

заметим, что в данном коде в синтаксисе псевдо-с++ строго записано следующее формальное высказывание:

«класс tree_view_20 есть tree_view, у которого изаначально установлена индентация 20»

как в общем виде такое написать на руст, если у нас есть гипотетическая рустовая библиотека виджетов? у меня всего 5 значащих строчек(если скобки не считать). давайте псевдокод. и какое высказывание будет в нем выражено (это важно, ибо будет показывать ту логику в которой определяются классы в русте)

Исправление alysnix, :

все эти трюки с декораторами, датасорсами и ненаследованием можно провернуть и в с++. руст для этого не нужен. это просто будет такой особенный способ разработки классов.

итак вместо понятия window(у вас это widget) - котрое в соотв. с принципом лисков и было базовым классом, понятием tree_view - которое было реализацией контрола с деревом внутри(которое тоже в соотв с принципов лисков есть window)… то есть у меня есть два понятия .. вы предлагаете что? - widget, tree_view_decorator, tree_view_data_source, tree_view_trait, default_tree_view_trait_impl_as_widget?

код на псевдо-с++

import tree_view;

///класс tree_vew с индентацией элементов - 20
class tree_view_20: public tree_view {
  ///конструктор что создаст окно с индентацией = 20
  tree_view_20() {
    this->set_indent(20);
  }
}

использование:

///в некий book вставляем страницу c таким контролом
some_book_control->add_page(new tree_view_20());

как в общем виде такое написать на руст, если у нас есть гипотетическая рустовая библиотека виджетов? у меня всего 5 значащих строчек(если скобки не считать). давайте псевдокод.

Исходная версия alysnix, :

все эти трюки с декораторами, датасорсами и ненаследованием можно провернуть и в с++. руст для этого не нужен. это просто будет такой особенный способ разработки классов.

итак вместо понятия window(у вас это widget) - котрое в соотв. с принципом лисков и было базовым классом, понятием tree_view - которое было реализацией контрола с деревом внутри(которое тоже в соотв с принципов лисков есть window)… то есть у меня есть два понятия .. вы предлагаете что? - widget, tree_view_decorator, tree_view_data_source, tree_view_trait, default_tree_view_trait_impl_as_widget?

код на псевдо-с++

import tree_view;

///класс tree_vew с индентацией элементов - 20
class tree_view_20: public tree_view {
  ///конструктор что создаст окно с индентацией = 20
  tree_view_20() {
    this->set_indent(20);
  }
}

использование:

///в некий book вставляем страницу c таким контролом
some_book_control->add_page(new tree_control_20());

как в общем виде такое написать на руст, если у нас есть гипотетическая рустовая библиотека виджетов? у меня всего 5 значащих строчек(если скобки не считать). давайте псевдокод.