2010-07-29 37 views
21

Giả sử bạn đang khai báo một lớp với tất cả chuông và còi - phương thức khởi tạo và hủy, công khai, riêng tư, được bảo vệ và phương pháp tĩnh và thuộc tính, phương pháp ma thuật, v.v.Làm thế nào để bạn tổ chức các phương thức và thuộc tính trong một lớp?

Làm cách nào để tổ chức tất cả điều này một cách hợp lý? Ví dụ, bạn có nhóm những thứ theo khả năng hiển thị? Bạn có sắp xếp theo thứ tự tên phương thức không? Bạn có nhóm các phương pháp ma thuật với nhau không? Bạn có đặt constructor ở đầu và destructor ở cuối không?

Rõ ràng đây là chủ quan, nhưng tôi tò mò muốn biết những gì đã làm việc cho người khác hoặc những gì bạn thấy dễ điều hướng khi đọc mã của người khác.

Trả lời

24
  1. Constants
  2. Fields bởi tầm nhìn (công cộng, bảo vệ, tư nhân)
  3. Constructor và destructor và phương pháp kỳ diệu khác
  4. Phương pháp bởi tầm nhìn (công cộng, bảo vệ, tư nhân)

Nếu Tôi có thời gian, tôi cố gắng xếp chúng theo thứ tự chữ cái, P

+0

Hầu hết những gì tôi muốn làm, chỉ có phương pháp của tôi được sắp xếp đầu tiên bằng cách là phương pháp thể hiện và phương pháp tĩnh. – Wrikken

+0

Tôi hiếm khi có phương pháp tĩnh vì vậy tôi bỏ qua những phương pháp đó. Sẽ cập nhật danh sách – Mchl

+0

Theo mức độ hiển thị = ít nhất là ít nhất? Giống như công khai, được bảo vệ, riêng tư? –

0

Cá nhân, tôi đặt các biến lớp ở trên cùng (bằng visibil ity), sau đó phương pháp ma thuật, sau đó phương pháp công cộng, sau đó phương pháp bảo vệ/tư nhân. Đó là sự kết hợp giữa thứ tự sắp xếp thường xuyên nhất để chỉnh sửa ít nhất và thường xuyên chỉnh sửa những gì đang xảy ra trong các phương pháp quan trọng (đó là lý do tại sao các phương pháp ma thuật cao hơn bình thường).

0

Tôi đoán loại tổ chức duy nhất tôi thực hiện trong một hàm đang đặt __construct lên phía trước từ lớp đó mà không có bất kỳ loại tổ chức nào, nhưng tôi thường bắt đầu với các chức năng không công khai và kết thúc với các chức năng công cộng

0

Cá nhân, tôi có hằng số lớp ở trên cùng; các thuộc tính tiếp theo, cố gắng duy trì theo thứ tự riêng tư, được bảo vệ, sau đó là công khai. Đối với các phương pháp, trước tiên tôi đi tìm các getters và setters, sau đó các phương thức nội bộ khác được nhóm lại với nhau, tiếp theo là __construct và các phương thức ma thuật khác, với bất kỳ phương thức tĩnh nào cuối cùng .... nhưng tôi hiếm khi kết thúc việc giữ lại trật tự đó.

7

như thế này

class Foobar 
{ 
     var $public; 

     function __construct(.... 

     function public_method_1()... 
     function public_method_2()... 

     // 

     var $_priv; 

     function _private_1()... 
     function _private_2()... 
} 

về cơ bản, thú vị nhất (đối với lớp người dùng) những thứ đầu tiên

+2

Tôi thích ý tưởng "thú vị nhất đầu tiên" –

0

Thành thật mà nói (và điều này đang xảy ra cho âm thanh như thực hành xấu) Tôi không thực hiện bất kỳ nỗ lực để sắp xếp chúng theo bất kỳ thứ tự cụ thể nào. Làm việc với Visual Studio và Resharper có nghĩa là phần lớn không cần thiết.

+0

I không biết những chương trình đó - tại sao họ làm cho trật tự không liên quan? Tôi đang sử dụng Zend Studio, và nó sẽ chỉ cho tôi một phác thảo các phương pháp nếu tôi muốn. Các phác thảo được dễ dàng hơn để quét nếu nó trong một số thứ tự. Có gì khác trong thiết lập của bạn? –

+0

Visual Studio là IDE của Microsoft để phát triển các ứng dụng .Net & Resharper là một plugin cho nó cung cấp các cải tiến khác nhau. Với một tệp lớp mở trong Visual Studio, bạn có thể sử dụng combobox để chuyển đến một thuộc tính/phương thức cụ thể. Resharper có tính năng theo đó khi bạn nhấn một phím tắt, bạn có thể gõ vào một phương thức mà nó tìm thấy trong một tìm kiếm rộng giải pháp (cho phép bạn sau đó chuyển sang phương thức đó bên trong và lớp của nó) – ChrisFletcher

2

Tôi đặt các biến tĩnh trước, biến lớp tiếp theo. sau đó tôi thường đặt hàm tạo làm phương thức đầu tiên (hoặc nếu nó là một lớp có "init" hoặc một số phương thức khác được gọi là bởi một khung công tác, tôi sẽ đặt nó ở trên cùng)

Sau đó tôi cố gắng giữ liên quan các phương pháp được nhóm lại với nhau để có số lượng cuộn tối thiểu, nhưng nó có thể lộn xộn sau một thời gian.

Có một IDE như Eclipse + PDT hoặc vsPHP sẽ hiển thị cho bạn chế độ xem phác thảo của lớp và bạn có thể sắp xếp các phương thức theo ý muốn để không phải đi săn qua mã.

Các vấn đề liên quan