06. LSP
HomeDesign PatternC++

06. LSP

LSP

05. Virtual Function
04. Adapter
03. Casting

DesignPattern

Intent

  • Handles several child classes by using the same parent class pointer.

Explain

If some classes have common features, it is useful to group them in a parent class. By grouping them, they can be handled by an unified pointer, a parent class pointer. This is Liskov Substitution Principle (LSP). Code 1 shows a simple example of LSP.

// 01_C_LSP.cpp
#include <iostream>
#include <vector>

using namespace std;

class BaseClass
{
public:
    virtual void foo() = 0;
};

class DerivedClassFirst : public BaseClass
{
public:
    virtual void foo() override
        // override: It checks foo() exists in a base class or not
    {
        cout << "Foo for First derived class" << endl;
    }
};

class DerivedClassSecond : public BaseClass
{
public:
    virtual void foo() override
    {
        cout << "Foo for Second derived class" << endl;
    }
};

int main()
{
    vector v;

    v.push_back(new DerivedClassFirst);

    v.push_back(new DerivedClassSecond);

    for (BaseClass* p : v)
    {
        p->foo();
    }

    return 0;
}
// Compile: clang++ -std=c++14
//              -o 01_C_LSP 01_C_LSP.cpp
C++
Code 1. Liskov Substitution Principle
Foo for First derived class
Foo for Second derived class
Foo for First derived class
Foo for Second derived class

BaseClass is a parent class of DerivedClassFirst and DerivedClassSecond classes. foo() is defined in BaseClass, but DerivedClassFirst and DerivedClassSecond classes override it. However, in main(), a pointer of BaseClass handles both in the same way, p->foo().

Summary

  • Several child classes inheriting the same parent is LSP.
  • By using LSP, a parent pointer can handle all its child.
Name

0 weights,1,abstract class,1,active function,3,adam,2,Adapter,1,affine,2,argmax,1,back propagation,3,binary classification,3,blog,2,Bucket list,1,C++,11,Casting,1,cee,1,checkButton,1,cnn,3,col2im,1,columnspan,1,comboBox,1,concrete class,1,convolution,2,cost function,6,data preprocessing,2,data set,1,deep learning,31,Design Pattern,12,DIP,1,django,1,dnn,2,Don't Repeat Your code,1,drop out,2,ensemble,2,epoch,2,favicon,1,fcn,1,frame,1,gradient descent,5,gru,1,he,1,identify function,1,im2col,1,initialization,1,Lab,9,learning rate,2,LifeLog,1,linear regression,6,logistic function,1,logistic regression,3,logit,3,LSP,1,lstm,1,machine learning,31,matplotlib,1,menu,1,message box,1,mnist,3,mse,1,multinomial classification,3,mutli layer neural network,1,Non Virtual Interface,1,normalization,2,Note,21,numpy,4,one-hot encoding,3,OOP Principles,2,Open Close Principle,1,optimization,1,overfitting,1,padding,2,partial derivative,2,pooling,2,Prototype,1,pure virtual function,1,queue runner,1,radioButton,1,RBM,1,regularization,1,relu,2,reshape,1,restricted boltzmann machine,1,rnn,2,scrolledText,1,sigmoid,2,sigmoid function,1,single layer neural network,1,softmax,6,softmax classification,3,softmax cross entropy with logits,1,softmax function,2,softmax regression,3,softmax-with-loss,2,spinBox,1,SRP,1,standardization,1,sticky,1,stride,1,tab,1,Template Method,1,TensorFlow,31,testing data,1,this,2,tkinter,5,tooltip,1,Toplevel,1,training data,1,vanishing gradient,1,Virtual Copy Constructor,1,Virtual Destructor,1,Virtual Function,1,weight decay,1,xavier,2,xor,3,
ltr
item
Universe In Computer: 06. LSP
06. LSP
LSP
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXvUavVsX4rYm8cgKQ8rzps7pHmmEVtkIb66G2o5KZFCfjvO96SCEUdaw_DMYzSbdVrB8XvnaKN8ljEE7EBjutI2XvsBL-2BLdijjJRIpAOEpvlhOW-hfWP3ir3wbE488AwdFEu7WKbLgO/s0/
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXvUavVsX4rYm8cgKQ8rzps7pHmmEVtkIb66G2o5KZFCfjvO96SCEUdaw_DMYzSbdVrB8XvnaKN8ljEE7EBjutI2XvsBL-2BLdijjJRIpAOEpvlhOW-hfWP3ir3wbE488AwdFEu7WKbLgO/s72-c/
Universe In Computer
https://kunicom.blogspot.com/2018/01/06-lsp.html
https://kunicom.blogspot.com/
https://kunicom.blogspot.com/
https://kunicom.blogspot.com/2018/01/06-lsp.html
true
2543631451419919204
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago 1 minutes ago 1 hour ago 1 hours ago Yesterday 1 days ago 1 weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy