This textbook provides an in-depth introduction to software design, with a focus on object-oriented design, and using the Java programming language. Its goal is to help readers learn software design by discovering the experience of the design process. To this end, the text follows a continuous narrative that introduces each element of design know-how in context, and explores alternative solutions in that context. This narrative is complemented by hundreds of code fragments and design diagrams.
The first chapter is a general introduction to software design and the subsequent chapters cover design concepts and techniques. The concepts and techniques covered include interfaces, encapsulation, inheritance, design patterns, composition, functional-style design, unit testing, and many more. A major emphasis is placed on coding and experimentation as a necessary complement to reading the text. To support this aspect of the learning process, a companion website with practice exercises is provided, as well as two complete sample applications. Guidance on these sample applications is provided in "Code Exploration" insets throughout the book. Although the Java language is used as a means of conveying design-related ideas, the book''s main goal is to address concepts and techniques that are applicable in a host of technologies.
This second edition covers additional design techniques such as input validation and dependency injection. It also provides extended and revised treatment of many core subjects, including polymorphic copying, unit testing, the Observer pattern, and functional-style programming.
This book is intended for readers who have a minimum of programming experience and want to move from writing small programs and scripts to tackling the development of larger systems. This audience naturally includes students in university-level computer science and software engineering programs. As the prerequisites to specific computing concepts are kept to a minimum, the content is also accessible to programmers with no previous background in computing. In a similar vein, understanding the code fragments requires only a minimal grasp of the Java language, such as would be taught in an introductory programming course.This textbook provides an in-depth introduction to software design, with a focus on object-oriented design, and using the Java programming language. Its goal is to help readers learn software design by discovering the experience of the design process. To this end, the text follows a continuous narrative that introduces each element of design know-how in context, and explores alternative solutions in that context. This narrative is complemented by hundreds of code fragments and design diagrams.
The first chapter is a general introduction to software design and the subsequent chapters cover design concepts and techniques. The concepts and techniques covered include interfaces, encapsulation, inheritance, design patterns, composition, functional-style design, unit testing, and many more. A major emphasis is placed on coding and experimentation as a necessary complement to reading the text. To support this aspect of the learning process, a companion website with practice exercises is provided, as well as two complete sample applications. Guidance on these sample applications is provided in "Code Exploration" insets throughout the book. Although the Java language is used as a means of conveying design-related ideas, the book''s main goal is to address concepts and techniques that are applicable in a host of technologies.
This second edition covers additional design techniques such as input validation and dependency injection. It also provides extended and revised treatment of many core subjects, including polymorphic copying, unit testing, the Observer pattern, and functional-style programming.
This book is intended for readers who have a minimum of programming experience and want to move from writing small programs and scripts to tackling the development of larger systems. This audience naturally includes students in university-level computer science and software engineering programs. As the prerequisites to specific computing concepts are kept to a minimum, the content is also accessible to programmers with no previous background in computing. In a similar vein, understanding the code fragments requires only a minimal grasp of the Java language, such as would be taught in an introductory programming course.
Prisen for levering afhænger af typen af dit medlemskab, eller om du ikke har et medlemskab.
Hvis du ikke har et medlemsskab er priserne som følger:
Levering til pakkeshop | 39,95 kr. pr. ordre |
Hjemmelevering | 59,90 kr. pr. ordre |
Med et guldmedlemsskab er leveringspriserne:
Levering til pakkeshop. Ordrer under 250 kr. | 34,95 kr. pr. ordre |
Levering til pakkeshop. Ordrer over 250 kr. | 24,95 kr. pr. ordre |
Hjemmelevering. Ordrer under 250 kr. | 59,90 kr. pr. ordre |
Hjemmelevering. Ordrer over 250 kr. | 49,90 kr. pr. ordre |
Med et plating- eller streaming medlemsskab er leveringspriserne:
Levering til pakkeshop. Ordrer under 250 kr. | 24,95 kr. pr. ordre |
Levering til pakkeshop. Ordrer over 250 kr. | 0 kr. pr. ordre |
Hjemmelevering. Ordrer under 250 kr. | 44,90 kr. pr. ordre |
Hjemmelevering. Ordrer over 250 kr. | 19,95 kr. pr. ordre |
Bemærk venligst, at vi forbeholder os retten til at ændre i et fragtbeløb efter ordreafgivelse, hvis man som kunde har opnået en særlig fragtpris pga. køb for over 250 kr. og efterfølgende retter i sin ordre, så ordrebeløbet kommer under 250 kr. Ovenstående fragtpriser for ordrer under 250 kr. vil i så fald være gældende.
Levering
Varerne sendes indenfor 1-6 hverdage. Den konkrete leveringstid står oplyst ved hver enkelt vare. Levering sker med PostNord eller DAO distribution. Vi leverer kun i Danmark og ikke til Grønland og Færøerne.
Vær opmærksom på, at DAO ofte leverer om natten, og at der ikke skal kvitteres for modtagelse af pakken fra DAO. Hvis ikke DAO kan levere pakken forsvarligt ved dør eller i postkasse,
vil pakken i stedet blive leveret til nærmeste pakkeshop, også selvom du har betalt for hjemmelevering.