23
LESSON 1: RUBY OBJECT MODEL DYNAMIC RUBY

Dynamic Ruby. Lesson #1: Object model

Embed Size (px)

Citation preview

Page 1: Dynamic Ruby. Lesson #1: Object model

LESSON 1: RUBY OBJECT MODEL

DYNAMIC RUBY

Page 2: Dynamic Ruby. Lesson #1: Object model

Абстракция, описывающая обособленную группу объектов, обладающими общими свойствами.

Экземпляр класса, некоторая конечная реализация данной абстракции.

CLASS OBJECT

Page 3: Dynamic Ruby. Lesson #1: Object model

MEME AS EXAMPLE OF CLASS-OBJECT CONCEPT

Воруй

Абстрактный мем

Конкретный мем

Убивай

Page 4: Dynamic Ruby. Lesson #1: Object model

В Ruby каждый класс является так же и объектом. Объектом специального класса Class.

Page 5: Dynamic Ruby. Lesson #1: Object model
Page 6: Dynamic Ruby. Lesson #1: Object model

RUBY CLASS HIERARCHY

Page 7: Dynamic Ruby. Lesson #1: Object model

CLASS AS AN OBJECT

Page 8: Dynamic Ruby. Lesson #1: Object model

CLASS AS OBJECT

Page 9: Dynamic Ruby. Lesson #1: Object model

CLASS VARIABLES VS

CLASS INSTANCE VARIABLES

Page 10: Dynamic Ruby. Lesson #1: Object model

CLASS VARIABLES VS CLASS INSTANCE VARIABLES

Page 11: Dynamic Ruby. Lesson #1: Object model

CLASS VARIABLES VS CLASS INSTANCE VARIABLES [UPDATED]

Page 12: Dynamic Ruby. Lesson #1: Object model

CLASS METHODS VS

CLASS INSTANCE METHODS

Page 13: Dynamic Ruby. Lesson #1: Object model

CLASS METHODS VS CLASS INSTANCE METHODS

Page 14: Dynamic Ruby. Lesson #1: Object model

SINGLETON METHODS AND SINGLETON CLASSES

Page 15: Dynamic Ruby. Lesson #1: Object model

Singleton method это метод, который определен исключительно для одного конкретного объекта.

Page 16: Dynamic Ruby. Lesson #1: Object model

SINGLETON METHODS

Page 17: Dynamic Ruby. Lesson #1: Object model

Так вот, т.н. class methods любого класса это и есть singleton methods конкретного экземпляра класса Class.

Page 18: Dynamic Ruby. Lesson #1: Object model
Page 19: Dynamic Ruby. Lesson #1: Object model

SINGLETON METHODS

Page 20: Dynamic Ruby. Lesson #1: Object model

Metaclass for Foo

instance of C

lass class

Foo class as a

n instance

of Class c

lass

:another_foo instance

#my_object_method

Metaclass for :foo instance of Foo class

Metaclass for :another_foo instance of Foo class

:foo instance

#my_special_object_method::my_class_method

Page 21: Dynamic Ruby. Lesson #1: Object model

RUBY OBJECT MODEL

REFERENCES

▸ http://www.devalot.com/articles/2008/09/ruby-singleton

▸ http://stackoverflow.com/a/10560958

▸ https://habrahabr.ru/post/143990/

Page 22: Dynamic Ruby. Lesson #1: Object model

THANK YOU!

Alex Mikitenko [email protected] https://github.com/nonkor

Page 23: Dynamic Ruby. Lesson #1: Object model

TO BE CONTINUED…