Câu hỏi Tại sao sự phản chiếu được gọi là sự phản chiếu thay vì sự mâu thuẫn?


Nguồn gốc của thuật ngữ phản chiếu là gì? Nó có vẻ giống như nội tâm. Tại sao nó không được gọi là?

Cái nhìn sâu sắc: Nhìn vào trong; cụ thể, hành động hoặc quá trình tự kiểm tra.

Sự phản chiếu:

  1. hành động phản ánh hoặc trạng thái phản ánh.
  2. một tấm ảnh; đại diện; đối tác
  3. một sửa chữa của những suy nghĩ về một cái gì đó; xem xét cẩn thận
  4. một ý nghĩ xảy ra trong việc cân nhắc hoặc thiền định.

76
2017-12-09 02:09


gốc


thực sự đây là một câu hỏi thú vị. Tôi không chắc chắn nữa tôi thấy bất kỳ sự khác biệt: p - Johannes Schaub - litb
Thêm định nghĩa, nếu bạn không thích bạn có thể loại bỏ nó. - mmcdole
Ít nhất trong TCL, dường như không có bất kỳ sự khác biệt nào - jk.
@ JohannesSchaub-litb: đây là câu hỏi phải hỏi / xuất sắc. Tôi đã sắp sửa đăng nó nếu không tìm thấy nó đã được hỏi trước đây. Nó chỉ cho thấy chúng ta làm nhiều thứ trong cuộc sống mà không chú ý đến những chi tiết nhỏ nhất xung quanh. - Veverke


Các câu trả lời:


Có một câu trả lời thú vị trên bài viết wikipedia của Pháp cho Reflection (đây)

Sự phản chiếu có thể bị phân tách thành hai phần:

  • nội tâm: một chương trình có thể tự kiểm tra.
  • sự can thiệp: một chương trình có thể sửa đổi trạng thái / ý nghĩa của nó.

Vì vậy, sự phản chiếu là một đặc tính 'mạnh hơn' so với nội tâm. Đó là lý do tại sao bạn nói loại nội tâm cho khả năng biết các loại khi chạy (và thay đổi chúng là một hành động khác: chuyển đổi / đúc).

EDIT: thực sự tôi chỉ nhận ra câu trả lời đầu tiên đã nói chính xác rằng ^ ^. Đã đến lúc rút phích cắm ...


59
2017-12-09 03:03



Đọc bài báo Wikipedia tiếng Pháp, tôi nhận ra rằng trong tiếng Pháp, thuật ngữ "phản chiếu" có thể được liên kết chặt chẽ hơn trong tiếng Anh với ý tưởng "phản xạ" - của một cái gì đó tự hoạt động. Điều này có vẻ là cách đúng để hiểu thuật ngữ khi nó áp dụng cho các ngôn ngữ lập trình. - Jan Hettich
Tôi vẫn không thể nhìn thấy câu trả lời này như thế nào: thực sự, wikipedia giúp hiểu rõ hơn về sự khác biệt trong đó nó "thỏa mãn" chính nó chỉ với thông tin mà không thay đổi thông tin (mặc dù một lần nữa, nó chính xác như thế nào ... nhiều lần chúng ta sử dụng sự phản chiếu để khởi tạo các kiểu khi đang di chuyển - và như vậy, nơi mà sự thay đổi xảy ra ở đây, chúng ta không có đối tượng mới được tạo ra ở nơi đầu tiên, không có thay đổi nào khác xảy ra trừ khi bạn xem xét "biến đổi" sự thay đổi không nằm trong chủ đề được kiểm tra (cũng không có ý nghĩa gì nhiều). - Veverke
Vì vậy, phản ánh là một "quá trình" bao gồm nhiều bước hơn "nội tâm". Đâu là đối số hấp dẫn có lợi cho sự phản chiếu, chưa?! Sự mâu thuẫn như một từ đi đôi với thuật ngữ đại diện trong ngữ cảnh lập trình - trong khi "phản chiếu" - theo cách nào hành động phản xạ một lệnh / kiểu gần hơn với "sửa đổi" hơn "nội tâm" là gì? - Veverke


Phản ánh xuất phát từ ý tưởng "tự kiểm tra, tự sửa đổi và tự sao chép", phản ánh về bản thân của mình với mục đích thay đổi. Trong lập trình bạn sử dụng sự phản chiếu để kiểm tra cấu trúc của chính chương trình trong ngữ cảnh sử dụng nó thay vì chỉ kiểm tra nó. Những gì bạn nhận được là một biểu diễn của chương trình mà bạn có thể sử dụng để sửa đổi nó, thay vì dữ liệu mà nó hoạt động.

Bạn có thể tìm thêm thông tin tại bài viết wikipedia..


26
2017-12-09 02:30



Bạn không trả lời câu hỏi của mình chút nào. Introspection: Một hướng nội; cụ thể, hành động hoặc quá trình tự kiểm tra. - mmcdole
@ Simucal, xin lỗi tôi không rõ ràng hơn. Tôi đã chỉnh sửa câu trả lời để xác định rằng nó là kiểm tra với mục đích hành động. - tvanfosson
Anh ta đã làm. Ông nói rằng thuật ngữ phản ánh được sử dụng theo khả năng của chương trình để phản ánh khi thay đổi bằng cách sửa đổi chính nó. - Filip Dupanović
@ kron, câu trả lời ban đầu của tôi không cụ thể. - tvanfosson
Tôi vẫn không thể nhìn thấy câu trả lời này như thế nào: thực sự, wikipedia giúp hiểu rõ hơn về sự khác biệt trong đó nó "thỏa mãn" chính nó chỉ với thông tin mà không thay đổi thông tin (mặc dù một lần nữa, nó chính xác như thế nào ... nhiều lần chúng ta sử dụng sự phản chiếu để khởi tạo các kiểu khi đang di chuyển - và như vậy, nơi mà sự thay đổi xảy ra ở đây, chúng ta không có đối tượng mới được tạo ra ở nơi đầu tiên, không có thay đổi nào khác xảy ra trừ khi bạn xem xét "biến đổi" sự thay đổi không nằm trong chủ đề được kiểm tra (cũng không có ý nghĩa gì nhiều). - Veverke


Có một khái niệm khác được gọi là kiểu introspection đề cập đến khả năng xác định kiểu của một đối tượng trong thời gian chạy.

chỉnh sửa: Tôi nhận ra câu hỏi của bạn có ý định bất khả tri về ngôn ngữ, nhưng trong Java, sự phản chiếu được sử dụng để xác định những thành viên nào có đối tượng, trong khi nội suy cho phép bạn xác định thuộc tính JavaBeans nào có đối tượng, đó là lý do tại sao lớp introspection nằm trong gói java.beans. Tôi không chắc chắn sự khác biệt chính xác giữa các thuật ngữ sẽ bằng các ngôn ngữ khác, tuy nhiên,


4
2017-12-09 02:18





Thuật ngữ phản ánh từ luận án PHD năm 1982 của Brian Cantwell Smith có thể tìm thấy tại http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-272.pdf

Cái được gọi là sự phản chiếu thường đơn thuần là sự mẫn cảm, tức là, truy cập vào siêu dữ liệu. Yêu cầu phản ánh của Smith bao gồm nguyên nhân kết nối từ siêu dữ liệu trở lại và đây thường là thành phần bị thiếu. Một cách để tưởng tượng sự phản chiếu là truy cập để thực hiện, và không chỉ đơn thuần là việc thực hiện một số cá thể mới của một phép tính, mà là khả năng truy cập của nó sở hữu thực hiện. Chắc chắn api phản chiếu ban đầu của Java bị đặt tên sai vì nó không phản chiếu theo nghĩa này.


3
2018-05-27 15:17





Trong Net Tôi nghĩ thuật ngữ Reflection là rất thích hợp bởi vì nó không phải là loại chính nó được kiểm tra, nó là biểu hiện của mã, mà chỉ là một mô tả.


1
2017-12-07 13:31





Phản ánh, theo nghĩa của định nghĩa 3 và 4, có thể là nội suy. Đó là, sự mẫn cảm là sự phản chiếu trên chính bản thân mình. Tôi nghĩ rằng nội tâm là từ tốt hơn để sử dụng cho hành động phân tích mã bởi vì từ đó cụ thể hơn, nhưng tôi không nghĩ rằng sự phản chiếu là hoàn toàn không phù hợp.


1
2017-12-07 13:41