All Courses

Python Design Patterns - Flyweight

Neha Kumawat

2 years ago

Python Design Patterns - Flyweight | insideAIML
Table of Contents
  • Introduction
  • How to implement the flyweight pattern?


          The flyweight patterb comes under the structural design patterns category. It provides a way to decrease object count. It includes various features that help in improving application structure. The most important feature of the flyweight objects is immutable. This means that they cannot be modified once constructed. The pattern uses a HashMap to store reference objects.

How to implement the flyweight pattern?

          The following program helps in implementing the flyweight pattern −

class ComplexGenetics(object):
   def __init__(self):
   def genes(self, gene_code):
      return "ComplexPatter[%s]TooHugeinSize" % (gene_code)
class Families(object):
   family = {}
   def __new__(cls, name, family_id):
         id =[family_id]
      except KeyError:
         id = object.__new__(cls)[family_id] = id
      return id
   def set_genetic_info(self, genetic_info):
      cg = ComplexGenetics()
      self.genetic_info = cg.genes(genetic_info)
   def get_genetic_info(self):
      return (self.genetic_info)

def test():
   data = (('a', 1, 'ATAG'), ('a', 2, 'AAGT'), ('b', 1, 'ATAG'))
   family_objects = []
   for i in data:
      obj = Families(i[0], i[1])
   for i in family_objects:
      print ("id = " + str(id(i)))
      print (i.get_genetic_info())
   print ("similar id's says that they are same objects ")

if __name__ == '__main__':


The above program generates the following output −
id = 139699273716368
id = 139699273718160
id = 139699273716368
similar id's says that they are same objects 
Like the Blog, then Share it with your friends and colleagues to make this AI community stronger. 
To learn more about nuances of Artificial Intelligence, Python Programming, Deep Learning, Data Science and Machine Learning, visit our insideAIML blog page.
Keep Learning. Keep Growing. 

Submit Review