การออกแบบในรายละเอียด (low level design) เป็นการออกแบบในเชิงเทคนิกเพื่อแปลงการออกแบบระดับโครงสร้าง (high level design) ไปเป็นรูปแบบที่นักพัฒนาสามารถนำไปใช้ในการเขียนโปรแกรมได้ ดังนั้นแนวทางในการออกแบบในรายละเอียดก็จะคล้ายกับแนวทางในการออกแบบระดับโครงสร้าง เพราะเป็นการแปลงให้การออกแบบระดับโครงสร้างสามารถนำมาใช้ในการเขียนโปรแกรมได้ ในการทำเช่นนี้เราต้องคำนึงถึงแนวทางปฏิบัติ 3 ประการ คือ (1) ต้องออกแบบให้ง่ายต่อการเพิ่มความสามารถใหม่ๆในอนาคต เพื่อให้ง่ายต่อการแก้ไขข้อผิดพลาด ง่ายต่อการทดสอบ และไม่ก่อให้เกิดข้อผิดพลาดกระจัดกระจายไปทั่วระบบ ซึ่งสามารถทำได้โดยการใช้คลาสแบบแอบแสตรก ความยากคือการคาดการณ์สิ่งที่อาจจะพัฒนาเพิ่มเติมในอนาคตเพื่อออกแบบการใช้คลาสแบบแอบแสตรกที่เหมาะสม การพยายามพัฒนาเพื่อให้รองรับทุกทิศทางที่เป็นไปได้ก็จะทำให้เกิดการใช้คลาสแบบแอบแสตรกมากเกินไป ทำให้โปรแกรมซับซ้อนและยากต่อการทำความเข้าใจว่าออกแบบอย่างนี้ไปทำไม (2) ให้โปรแกรมเรียกใช้อินเตอร์เฟสแทนที่จะเป็นคลาสที่ทำงานจริงๆ เพราะคลาสแบบอินเตอร์เฟสจะเป็นการกำหนดเมธอดโดยที่ไม่มีส่วนของโปรแกรม แต่ส่วนของโปรแกรมจะถูกเขียนในคลาสที่มีการนำอินเตอร์เฟสไปใช้ ดังนั้นถ้าโปรแกรมเรียกใช้อินเตอร์เฟสจะทำให้เราสามารถนำโปรแกรมมาใช้ใหม่ได้โดยที่ไม่ต้องกังวลว่าโปรแกรมทำงานอย่างไร นอกจากนี้การดูรายละเอียดของอินเตอร์เฟสที่ประกาศไว้จะทำให้เราเข้าใจแนวคิดของการใช้งานได้ง่ายกว่าการอ่านโปรแกรมในรายละเอียด (3) เลือกใช้วิธีองค์ประกอบ (composition) มากกว่าวิธีสืบทอด (inheritance) แนวทางนี้อาจจะดูขัดแย้งกับหลายๆแนวทางที่ผ่านมาที่มักจะส่งเสริมให้ใช้วิธีสืบทอด แต่สำหรับการออกแบบในรายละเอียดการใช้วิธีองค์ประกอบจะทำให้เราได้โปรแกรมที่มีประสิทธิภาพมากกว่าและเพิ่มความสามารถได้ง่ายกว่า ในวิธีสืบทอดหากเราทำอะไรที่คลาสแม่จะส่งผลกระทบมาที่คลาสลูกทั้งหมด แต่ด้วยวิธีองค์ประกอบคลาสที่ได้จะเป็นเอกเทศจากคลาสอื่นๆในกลุ่มเดียวกัน ในการใช้งานด้วยวิธีองค์ประกอบจะเป็นการเรียกใช้เมธอดของออบเจกต์ที่ถูกส่งเข้าไปในคลาสผ่านทางฟิลด์หรือพารามิเตอร์ แต่ในการสืบทอดจะต้องเรียกใช้การสืบทอดเพื่อให้สามารถเรียกใช้เมธอดที่คลาสแม่ได้ วิธีองค์ประกอบทำให้เราได้คลาสที่มีขนาดเล็กและมีหน้าที่ชัดเจน และหากเราต้องการเปลี่ยนแปลงพฤติกรรมของของโปรแกรมในขณะใช้งานก็สามารถทำได้โดยเปลี่ยนออบเจตก์ที่ส่งเข้าไปผ่านฟิลด์หรือพารามิเตอร์ และเรียกใช้เมธอดของออบเจกต์เพื่อทำงานที่ต้องการ