Nhờ dịch giùm đoạn tiếng Anh trong sách Ruby

> class ApplicationConfiguration
>   @configuration = {}

>   def self.set(property, value)
>     @configuration[property] = value
>   end

>   def self.get(property)
>     @configuration[property]
>   end
> end

> class ERPApplicationConfiguration < ApplicationConfiguration
>   @configuration = {}
> end

> class WebApplicationConfiguration < ApplicationConfiguration
>   @configuration = {}
> end

> ERPApplicationConfiguration.set("name", "ERP Application")
> WebApplicationConfiguration.set("name", "Web Application")

> p ERPApplicationConfiguration.get("name")
> p WebApplicationConfiguration.get("name")

> p ApplicationConfiguration.get("name")

Class instance variables are a better alternative than class variables simply because the data is not shared across the inheritance chain. Another major difference between class variables and class instance variables are that class instance variables are available only in class methods. But class variables are available in both class methods and instance methods.

A quick summary before we move on:

  • Instance variables are available only for instances of a class. They look like @name. Class variables are available to both class methods and instance methods. They look like @@name
  • It is almost always a bad idea to use a class variable to store state. There are only a very few valid use cases where class variables are the right choice.
  • Prefer class instance variables over class variables when you do really need store data at a class level. Class instance variables use the same notation as that of an instance variable. But unlike instance variables, you declare them inside the class definition directly.

Biến thể hiện của class là sự thay thế tốt hơn biến của class đơn giản là vì dữ liệu không được dùng chung thông qua chuỗi kế thừa . Sự khác biệt chính yếu khác giữa biến của class và biến thể hiện của class là biến thể hiện của class được dùng chỉ trong class đó. Nhưng biến của class dùng cho cả 2 trường hợp là phương thức của class và phương thức thể hiện của class

Tóm tắt nhanh trước khi tiếp tục
Biến thể hiện chỉ là thể hiên của class . Họ trông như @name. Biến của class là khả năng hoạt động trong cả 2 trường hợp . Trông như @@name
Nó luôn luôn là 1 ý tưởng tồi khi dùng biến class chứa trạng thái . Chỉ có một vài ngoại lệ là đúng .
Nơi biến class là 1 lựa chọn đúng
Biến thể hiện của class đúng hơn biến class khi ban dùng chứa dữ liệu tại lớp Class (top-level) . Biến thể hiện của class dùng kí hiệu tương tự như 1 biến thể hiện (regular ) . Nhưng không như iVAR ( biến thể hiện ) , bạn khai báo họ trong class để định nghĩa 1 cách trực tiếp .

4 Likes

Dạ cảm ơn anh rất nhiều ạ

Bác chịu khó đào sâu thêm Tiếng Anh đi, ví dụ như thư viện Safari Online có hàng trăm ngàn đầu sách hay, không đọc được thì phí lắm :smile:

3 Likes

Dạ em cảm ơn ạ. Nhưng em biết nghĩa hết từ mà dịch thành câu không được, không hiểu ý tác giả muốn nói gì khi tác giả giải thích. Đôi khi những từ là từ khóa không nên dịch ra tiếng Việt, chỉ những người hiểu ngôn ngữ nên không dịch ra thì mới dễ hiểu được ạ.

Instance variable ~ backing field
Class variable = static field cho subclass dùng chung, khá là quái
Class instance variable = internal class field (nên dùng) cái này thực ra cũng là instance variable vì class là đối tượng của lớp Class.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?