כבר אמרנו שיש שירותים שהם שאילתה (אם הם מחזירים מידע אודות העצם שעליו הם מופעלים) או פקודה (אם הם משנים את המצב המופשט שלו). שירות יכול להוות שאילתה, או פקודה, או גם שאילתה וגם פקודה, או לא שאילה ולא פקודה.
בנאים הם שירותים שאינם שאילתה ואינם פקודה. הם קובעים את הייצוג (ולכן את המצב המופשט) של עצמים חדשים. הם אינם משנים את המצב של עצם קיים ואינם מחזירים שום ערך.
שאילתות מתחלקות לשני סוגים. שאילתה שמחזירה מידע מטיפוס שאינו הטיפוס של העצם נקראת צופה (observer). שאילתה כזו בדרך כלל מחזירה מידע שמתאר היבט מסויים של המצב המופשט של העצם. למשל, השאילתה length של המחלקה String מחזירה את מספר התוים במחרוזת, והשאילתה charAt של String מחזירה את התו שנמצא במקום מסויים במחרוזת. שתי השאיתות הללו הן צופות.
שאילתה שמחזירה עצם חדש מהטיפוס שהוא הטיפוס של העצם נקראת יצרנית (producer). שאילתה יצרנית בדרך כלל אינה מחזירה מידע אודות העצם, אלא היא מייצרת עצם חדש שיש בינו ובין העצם שעליו הופעלה יחס מסויים. למשל, השאילתות add של BigInteger ו-nextDay בתוכנית המצורפת, שתיהן יצרניות. בשני המקרים המטרה העיקרית של השאילה אינה להחזיר לקורא מידע אודות העצם, אלא לייצר עצם חדש.
כל שירות שמשנה את המצב המופשט של העצם שעליו הוא מופעל הוא פקודה (command או mutator).
השאלה האם השירות משנה את המצב המופשט של עצמים אחרים, פרט לעצם שעליו השירות הופעל, אינה משנה את הסיווג שלו. שינוי המצב המופשט של עצמים אחרים נקרא תוצא לוואי (side effect). בתוצאי לוואי נדון בהמשך.
מספר שיקולים צריכים להנחות את המפתחים כאשר הם באים להגדיר שירותים וכאשר הם משתמשים בשירותים.