Skip to main content

Design patterns

Solid design principles in the programming - 
S - Single responsibility principle (SRP) - Class should have only one reason to change.
O - Open closed Principle (OCP) - Software entities should be open for extensions and closed for modifications.
L - Liskov substitution principle (LSP)
I - Interface Segregation Principle (ISP) - (Big interfaces to break in to smaller interfaces)
D - Dependency Inversion principle (DIP) - one should depend on abstraction and not concretions.


Design patterns videos:-
https://www.youtube.com/watch?v=rI4kdGLaUiQ&list=PL6n9fhu94yhUbctIoxoVTrklN3LMwTCmd

Types of design patterns
Creational - (flexiblity in deciding which objects need to create for given case). e.g. Singleton, Factory, Abstract Factory, builder, prototype.
Structural - (Decoupling interface and implementaion of classes and its objects.) e.g. Adapter, Bridge
Behavioural - (Communication between classes and objects) e.g. Chain of responsiblity, Command, Interpreter.

Singleton design pattern -
Implementation guidlines -
Ensure that only one instance of the class exists
provide global access to that instance by
-- Declaring all constructor of the class to be private.
-- Providing static method that returns a reference to the instance.
-- The instance is stored as a private static variable.
e.g.
Exception or information logging.
Managing a connection or a pool of connections to Database.
Printer Spooling
File management
Configuration
Cache
Session based shopping carts.


Static class Vs Singleton -
Static is a keyword and singleton is desgin pattern.
Static classes can contains only static members.
Signleton is object creational pattern with one instance of the class.
Singleton can implement interfaces, inherit from other classes and it aligns with oops concept.
Singleton object can be passed as a reference.
Singleton supports object disposal.
Singleton object is stored on the heap, where as static can stored on stack.
Singleton object cab be cloned.


Factory design pattern -
Let subclasses to decide which class to instanciated.
Factory pattern creates object without exposing the creation logic to client and refer to newly created object using a common interface.
The factory method lets a class defer intantiation it uses to subclasses.

Implementation guidelines -
The object need to be extended to sub-classes.
The classes does not know what exact sub-classes it has to create.
The product implementation tend to change over time and the client remains change.

e.g. client uses factory to creates instance of the product.
Client --uses--> Factory --creates--> Product

Comments

Popular posts from this blog

Learn phpfox

PHPFox  is a social network script, it is an internet application and when you install it, it is a website. The  phpfox  script comes in 3 packages, each with a different set of modules. it has two products: 1. Nebula (upto phpfox 3.8) 2. Neutron (Newer) You can check the demo on :  http://www.phpfox.com =================================================== To clear cache in phpfox follow the following steps, admincp >> Tools >> Maintenance >> Cache Manager >> Click on Clear All button =================================================== To work facebook app on local Following settings need to done in facebook app   1) go => setting => Advance 2) see "OAuth Settings" area and set "Valid OAuth redirect URIs" =  http:// projectdomain /index.php?do=/user/login/, http:// projectdomain .com/index.php?do=/user/register/, http:// projectdomain .com, http:// projectdomain .com/index.php 3) en...

Interview PHP

>> Why do you want to work at our company? Sir, It is a great privilege for anyone to work in a reputed company like yours. When I read about your company I found that my skills are matching your requirements.  Where I can showcase my technical skills to contribute to the company growth. >> What are your strengths? I am very much hard working and optimistic. Hard Working: Work with dedication and determination. Optimistic: work with positive attitude. I am a team player. I am also very hardworking, and will do what it takes to get the job done. >> What are your weaknesses? Gets nervous when talk to strangers I am a bit lazy about which I am not interested I tend to trust people too easily. I am working on it. >> Why should I hire you? With reference to my work experience, I satisfy all the requirement for this job. I am sincere with my work and would never let you down in anyway. I promise you will never regret for the decision to a...

How to Make Your Own PHP Captcha Generator

In this article we will create file based simple yet successful captcha generator. 3 Major Anti-spamming techniques used? Mathematical Operation like Random number + Random Number = -> The user must specify the answer Random word -> User must type the word Random question -> Obvious one which the user should answer correctly [ex: Are you human?] How Captcha works? The captcha generator generates an IMAGE with the question and then put up a session variable storing the value. User input though an input box. Using php POST, we compare the session variable data with the user input and tell whether its a bot or human. Its coding time The Code First let's write the php script which generates the captcha image. We use the simple header-content change technique, from which we can easily bring up an image from a given text. captcha.php PHP Code: array("Num" => "Num"), 1 => array("Are y...