SlideShare a Scribd company logo
1 of 17
Download to read offline
Integrative Coding:
Design Patterns;
Interfaces;
Inheritance.
Miscellaneous Issues:
Adopt andAdapt vs. make;
Versioning and version control
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 1
 Design pattern:
 A Lower level framework for structuring an application than architectures (Sometimes,
called micro-architecture).
 Reusable collaborations that solve sub problems within an application.
 Why Design Patterns?
 Design patterns support object-oriented reuse at a high level of abstraction
 Design patterns provide a “framework” that guides and constrains object-oriented
implementation
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 2
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 3
 The Gang of Four (GoF) Design Patterns book describes twenty-three
patterns arranged into three groups.
 The groups help classify how the patterns are used.
1. Creational patterns : used to help make a system independent of how its
objects are created, composed and represented.
2. Structural patterns are concerned with how classes and objects are
organized and composed to build larger structures.
3. Behavioral patterns are used to deal with assignment of responsibilities
to objects and communication between objects.
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 4
Creational Patterns
 Abstract Factory - create instances of other objects
Eg:-creatingGUI components for different GUI toolkits
 Factory Method -common interface for creating subclasses
 Singleton -create only one instance of a class
Structural Patterns
 Decorator - add more responsibilities to an object dynamically
Eg:- adding scrolling to a text view
 Facade- higher level unified interface to a set of objects in a subsystem
 Proxy- interface layer between objects
Behavioral Patterns
 Iterator- a means to access all the elements of objects sequentially
 Momento- capture and save the current state of an object
 Observer- when any numbers of objects (the Observers) need to be
notified automatically
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 5
Application Programming Interfaces
 Are sets of requirements that govern how one application can talk to
another
 applications to share data and take actions on one another's behalf
without requiring developers to share all of their software's code
 define exactly how a program will interact with the rest of the software
world—saving time, resources
 Eg:- System-levelAPIs- cut and paste LibreOffice document into an
Excel spreadsheet
 Eg:-FacebookAPIs- Facebook users sign into many apps andWeb sites
using their Facebook ID
 Eg:-WebAPIs – games let players chat, post high scores and invite
friends to play via Face book, right there in the middle of a game
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 6
Inheritance
 derive a new class based on an existing class, with modifications or
extensions
 A subclass inherits all the variables and methods from its super classes,
including its immediate parent as well as all the ancestors
 avoid duplication and reduce redundancy
Types of Inheritance
 Simple , Multilevel, Multiple, hierarchical and Hybrid
Inheritance and Abstract class
 Abstract Method:- a method with only signature (i.e., the method name,
the list of arguments and the return type) without implementation (i.e.,
the method’s body).
 use the keyword abstract to declare an abstract method
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 7
Abstract Class
 A class containing one or more abstract methods is called an abstract
class.
 must be declared with a class-modifier abstract
 provides a template for further development
Notes:
 An abstract method cannot be declared final, as final method cannot be
overridden.
 An abstract method must be overridden in a descendent before it can
be used.
 An abstract method cannot be private (which generates a compilation
error, because private method is not visible to the subclass and thus
cannot be overridden.
In Java, define a subclass using the keyword "extends", e.g.,
class MyApplet extends java.applet.Applet {.....}
class Cylinder extends Circle {......}
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 8
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 9
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 10
 Shape.java
abstract public class Shape
{
private String color; // Private member variable
public Shape (String color) // Constructor
{ this.color = color;
}
public String toString()
{
return "Shape of color="" + color + """;
}
// All Shape subclasses must implement a method called getArea()
abstract public double getArea();
}
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 11
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 12
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 13
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 14
 Version control enables multiple people to simultaneously work on a
single project.
 Each person edits his or her own copy of the files and chooses when to
share those changes with the rest of the team.
 temporary or partial edits by one person do not interfere with another
person's work.
 enables one person to use multiple computers to work on a project
 integrates work done simultaneously by different team members
 In rare cases, when two people make conflicting edits to the same line of
a file, then the version control system requests human assistance in
deciding what to do
 Version control gives access to historical versions of the project
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 15
 If make a mistake, roll back to a previous version. reproduce and
understand a bug report on a past version of your software.
 undo specific edits without losing all the work that was done in the
meanwhile.
 For any part of a file, determine when, why, and by whom it was ever
edited.
 Version control uses a repository (a database of changes) and a working
copy (checkout) where you do your work
 working copy is your personal copy of all the files in the project.
edits to this copy, without affecting your teammates. commit your
changes to a repository
 repository is database of all the edits to, and/or historical versions
(snapshots) of, your project
update your working copy to incorporate any new edits or versions
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 16
 Two varieties of version control: centralized (one repository) and
distributed (multiple repositories)
 Some popular version control systems are Mercurial (distributed), Git
(distributed), and Subversion (centralized).
 The main difference between centralized and distributed version control
is the number of repositories.
 In centralized version control, there is just one repository, and in
distributed version control, there are multiple repositories.
8/12/2015
Presented by Dr. J.VijiPriya,Assistant Professor,
Hawassa University, Ethiopia 17

More Related Content

Similar to Integrative Programming chapter 5

The quality & richness of E-Education
The quality & richness of E-EducationThe quality & richness of E-Education
The quality & richness of E-EducationSuraj Mehta
 
1. (slide share)glue-integrationofexternaltools
1. (slide share)glue-integrationofexternaltools1. (slide share)glue-integrationofexternaltools
1. (slide share)glue-integrationofexternaltoolsCARLOS ALARIO
 
MK_MSc_Degree_Project_Report ver 5_updated
MK_MSc_Degree_Project_Report ver 5_updatedMK_MSc_Degree_Project_Report ver 5_updated
MK_MSc_Degree_Project_Report ver 5_updatedMohammed Ali Khan
 
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docxSimulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docxedgar6wallace88877
 
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...VijiPriya Jeyamani
 
VIVO at the University of Idaho
VIVO at the University of IdahoVIVO at the University of Idaho
VIVO at the University of Idahoanniegaines
 
Free and Open Source for Education
Free and Open Source for EducationFree and Open Source for Education
Free and Open Source for EducationSavitri Wilder
 
Developing and Deploying Open Source in the Library: Hydra, Blacklight, and B...
Developing and Deploying Open Source in the Library: Hydra, Blacklight, and B...Developing and Deploying Open Source in the Library: Hydra, Blacklight, and B...
Developing and Deploying Open Source in the Library: Hydra, Blacklight, and B...Julie Meloni
 
Bhagat Myexperiment Bosc2008
Bhagat Myexperiment Bosc2008Bhagat Myexperiment Bosc2008
Bhagat Myexperiment Bosc2008bosc_2008
 
Better Software, Better Research
Better Software, Better ResearchBetter Software, Better Research
Better Software, Better ResearchCarole Goble
 
Scalable architectures for phenotype libraries
Scalable architectures for phenotype librariesScalable architectures for phenotype libraries
Scalable architectures for phenotype librariesMartin Chapman
 
ImageJ and the SciJava software stack
ImageJ and the SciJava software stackImageJ and the SciJava software stack
ImageJ and the SciJava software stackCurtis Rueden
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Luis Valencia
 
Reproducibility: 10 Simple Rules
Reproducibility: 10 Simple RulesReproducibility: 10 Simple Rules
Reproducibility: 10 Simple RulesAnnika Eriksson
 
Jonathan bright - collecting social media data with the python programming la...
Jonathan bright - collecting social media data with the python programming la...Jonathan bright - collecting social media data with the python programming la...
Jonathan bright - collecting social media data with the python programming la...oiisdp
 
Object Oriented Approach For Software Development
Object Oriented Approach For Software DevelopmentObject Oriented Approach For Software Development
Object Oriented Approach For Software DevelopmentJessica Tanner
 

Similar to Integrative Programming chapter 5 (20)

The quality & richness of E-Education
The quality & richness of E-EducationThe quality & richness of E-Education
The quality & richness of E-Education
 
1. (slide share)glue-integrationofexternaltools
1. (slide share)glue-integrationofexternaltools1. (slide share)glue-integrationofexternaltools
1. (slide share)glue-integrationofexternaltools
 
Managing Citations: What's Actually Helpful? 2013-10
Managing Citations: What's Actually Helpful? 2013-10Managing Citations: What's Actually Helpful? 2013-10
Managing Citations: What's Actually Helpful? 2013-10
 
MK_MSc_Degree_Project_Report ver 5_updated
MK_MSc_Degree_Project_Report ver 5_updatedMK_MSc_Degree_Project_Report ver 5_updated
MK_MSc_Degree_Project_Report ver 5_updated
 
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docxSimulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docx
 
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...
Human Computer Interaction Chapter 4 Implementation Support and Evaluation Te...
 
VIVO at the University of Idaho
VIVO at the University of IdahoVIVO at the University of Idaho
VIVO at the University of Idaho
 
Free and Open Source for Education
Free and Open Source for EducationFree and Open Source for Education
Free and Open Source for Education
 
Developing and Deploying Open Source in the Library: Hydra, Blacklight, and B...
Developing and Deploying Open Source in the Library: Hydra, Blacklight, and B...Developing and Deploying Open Source in the Library: Hydra, Blacklight, and B...
Developing and Deploying Open Source in the Library: Hydra, Blacklight, and B...
 
Bhagat Myexperiment Bosc2008
Bhagat Myexperiment Bosc2008Bhagat Myexperiment Bosc2008
Bhagat Myexperiment Bosc2008
 
Better Software, Better Research
Better Software, Better ResearchBetter Software, Better Research
Better Software, Better Research
 
Scalable architectures for phenotype libraries
Scalable architectures for phenotype librariesScalable architectures for phenotype libraries
Scalable architectures for phenotype libraries
 
ImageJ and the SciJava software stack
ImageJ and the SciJava software stackImageJ and the SciJava software stack
ImageJ and the SciJava software stack
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
 
Reproducibility: 10 Simple Rules
Reproducibility: 10 Simple RulesReproducibility: 10 Simple Rules
Reproducibility: 10 Simple Rules
 
Jonathan bright - collecting social media data with the python programming la...
Jonathan bright - collecting social media data with the python programming la...Jonathan bright - collecting social media data with the python programming la...
Jonathan bright - collecting social media data with the python programming la...
 
Object Oriented Approach For Software Development
Object Oriented Approach For Software DevelopmentObject Oriented Approach For Software Development
Object Oriented Approach For Software Development
 
Framework for Agile Living Labs - FALL
Framework for Agile Living Labs - FALLFramework for Agile Living Labs - FALL
Framework for Agile Living Labs - FALL
 
UCIAD overview
UCIAD overviewUCIAD overview
UCIAD overview
 
SIGAda Hibachi Workshop Presentation
SIGAda Hibachi Workshop PresentationSIGAda Hibachi Workshop Presentation
SIGAda Hibachi Workshop Presentation
 

Recently uploaded

The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Science lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonScience lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonJericReyAuditor
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxHistory Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxsocialsciencegdgrohi
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 

Recently uploaded (20)

The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Science lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonScience lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lesson
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptxHistory Class XII Ch. 3 Kinship, Caste and Class (1).pptx
History Class XII Ch. 3 Kinship, Caste and Class (1).pptx
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 

Integrative Programming chapter 5

  • 1. Integrative Coding: Design Patterns; Interfaces; Inheritance. Miscellaneous Issues: Adopt andAdapt vs. make; Versioning and version control 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 1
  • 2.  Design pattern:  A Lower level framework for structuring an application than architectures (Sometimes, called micro-architecture).  Reusable collaborations that solve sub problems within an application.  Why Design Patterns?  Design patterns support object-oriented reuse at a high level of abstraction  Design patterns provide a “framework” that guides and constrains object-oriented implementation 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 2
  • 3. 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 3
  • 4.  The Gang of Four (GoF) Design Patterns book describes twenty-three patterns arranged into three groups.  The groups help classify how the patterns are used. 1. Creational patterns : used to help make a system independent of how its objects are created, composed and represented. 2. Structural patterns are concerned with how classes and objects are organized and composed to build larger structures. 3. Behavioral patterns are used to deal with assignment of responsibilities to objects and communication between objects. 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 4
  • 5. Creational Patterns  Abstract Factory - create instances of other objects Eg:-creatingGUI components for different GUI toolkits  Factory Method -common interface for creating subclasses  Singleton -create only one instance of a class Structural Patterns  Decorator - add more responsibilities to an object dynamically Eg:- adding scrolling to a text view  Facade- higher level unified interface to a set of objects in a subsystem  Proxy- interface layer between objects Behavioral Patterns  Iterator- a means to access all the elements of objects sequentially  Momento- capture and save the current state of an object  Observer- when any numbers of objects (the Observers) need to be notified automatically 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 5
  • 6. Application Programming Interfaces  Are sets of requirements that govern how one application can talk to another  applications to share data and take actions on one another's behalf without requiring developers to share all of their software's code  define exactly how a program will interact with the rest of the software world—saving time, resources  Eg:- System-levelAPIs- cut and paste LibreOffice document into an Excel spreadsheet  Eg:-FacebookAPIs- Facebook users sign into many apps andWeb sites using their Facebook ID  Eg:-WebAPIs – games let players chat, post high scores and invite friends to play via Face book, right there in the middle of a game 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 6
  • 7. Inheritance  derive a new class based on an existing class, with modifications or extensions  A subclass inherits all the variables and methods from its super classes, including its immediate parent as well as all the ancestors  avoid duplication and reduce redundancy Types of Inheritance  Simple , Multilevel, Multiple, hierarchical and Hybrid Inheritance and Abstract class  Abstract Method:- a method with only signature (i.e., the method name, the list of arguments and the return type) without implementation (i.e., the method’s body).  use the keyword abstract to declare an abstract method 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 7
  • 8. Abstract Class  A class containing one or more abstract methods is called an abstract class.  must be declared with a class-modifier abstract  provides a template for further development Notes:  An abstract method cannot be declared final, as final method cannot be overridden.  An abstract method must be overridden in a descendent before it can be used.  An abstract method cannot be private (which generates a compilation error, because private method is not visible to the subclass and thus cannot be overridden. In Java, define a subclass using the keyword "extends", e.g., class MyApplet extends java.applet.Applet {.....} class Cylinder extends Circle {......} 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 8
  • 9. 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 9
  • 10. 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 10
  • 11.  Shape.java abstract public class Shape { private String color; // Private member variable public Shape (String color) // Constructor { this.color = color; } public String toString() { return "Shape of color="" + color + """; } // All Shape subclasses must implement a method called getArea() abstract public double getArea(); } 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 11
  • 12. 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 12
  • 13. 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 13
  • 14. 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 14
  • 15.  Version control enables multiple people to simultaneously work on a single project.  Each person edits his or her own copy of the files and chooses when to share those changes with the rest of the team.  temporary or partial edits by one person do not interfere with another person's work.  enables one person to use multiple computers to work on a project  integrates work done simultaneously by different team members  In rare cases, when two people make conflicting edits to the same line of a file, then the version control system requests human assistance in deciding what to do  Version control gives access to historical versions of the project 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 15
  • 16.  If make a mistake, roll back to a previous version. reproduce and understand a bug report on a past version of your software.  undo specific edits without losing all the work that was done in the meanwhile.  For any part of a file, determine when, why, and by whom it was ever edited.  Version control uses a repository (a database of changes) and a working copy (checkout) where you do your work  working copy is your personal copy of all the files in the project. edits to this copy, without affecting your teammates. commit your changes to a repository  repository is database of all the edits to, and/or historical versions (snapshots) of, your project update your working copy to incorporate any new edits or versions 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 16
  • 17.  Two varieties of version control: centralized (one repository) and distributed (multiple repositories)  Some popular version control systems are Mercurial (distributed), Git (distributed), and Subversion (centralized).  The main difference between centralized and distributed version control is the number of repositories.  In centralized version control, there is just one repository, and in distributed version control, there are multiple repositories. 8/12/2015 Presented by Dr. J.VijiPriya,Assistant Professor, Hawassa University, Ethiopia 17