What is your opinion on method ordering?
Should it be public methods at the top followed by private methods?
or
Should it be linear order so that methods calling methods stack on top of each other?
Which do you think is better for maintainability / readability?
Examples
Public first:
public class Main {
@Override
public void onCreate(Bundle savedInstanceState) {
//
}
@Override
protected void onResume() {
startUploadActivity();
}
@FromXML
public void onSignInClick(View button){
startAuthorisationForYouTube();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultIsASignInAttempt(requestCode) && signedInSucccessfully(resultCode)){
dealWithResult(data);
} else
if(resultIsASignInAttempt(requestCode) && signInFailed(resultCode)){
startRefusalActivity();
}
}
@Override
protected void onStop() {
super.onStop();
}
private void startUploadActivity() {
//
}
private void startAuthorisationForYouTube() {
//
}
private static boolean resultIsASignInAttempt(int requestCode) {
//
}
private static boolean signedInSucccessfully(int resultCode) {
//
}
private static boolean signInFailed(int resultCode) {
//
}
private void dealWithResult(Intent data) {
//
}
private static Tokens getAccessTokens(Intent data) {
//
}
private void startRefusalActivity() {
//
}
}
Calling order:
public class Main {
@Override
public void onCreate(Bundle savedInstanceState) {
//
}
@Override
protected void onResume() {
startUploadActivity();
}
private void startUploadActivity() {
//
}
@FromXML
public void onSignInClick(View button){
startAuthorisationForYouTube();
}
private void startAuthorisationForYouTube() {
//
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultIsASignInAttempt(requestCode) && signedInSucccessfully(resultCode)){
dealWithResult(data);
} else
if(resultIsASignInAttempt(requestCode) && signInFailed(resultCode)){
startRefusalActivity();
}
}
private static boolean resultIsASignInAttempt(int requestCode) {
//
}
private static boolean signedInSucccessfully(int resultCode) {
//
}
private static boolean signInFailed(int resultCode) {
//
}
private void dealWithResult(Intent data) {
//
}
private static Tokens getAccessTokens(Intent data) {
//
}
private void startRefusalActivity() {
//
}
@Override
protected void onStop() {
super.onStop();
}
}