[Из песочницы] Создаем свой язык на Groovy

Основная проблема императивных языков программирования — их низкая приближенность к естественным языкам. ООП эту проблему частями решил, упорядочив данные и логику по классам объектов, но все равно это выглядит сложно для понимания. Основная проблема здесь в том, что императивные языки не приспособлены для работы с иерархиями объектов и вложенными вызовами методов. Например, у меня есть иерархия классов работы с заказами на продукты для клиентов:// Клиент class Customer { int inn String name String address String phone }

// Клиенты class Customers { Customer findByInn (inn) void add (Customer customer) }

// Продукт class Product { String article String name double price }

// Продукты class Products { Product findByArticle (article) void add (Product product) }

// Заказ class Order { int num Customer customer List details = []

OrderDetail findByPos (pos) void add (OrderDetail detail) }

// Товар заказа class OrderDetail { int pos Product product def count = 1 def getSum () { count * product.price } }

// Заказы class Orders { Order findByNum (num) void add (Order order) } Сама бизнес логика описания работы будет выглядеть вот так: Читать дальше →

© Habrahabr.ru