ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

设计模式之工厂模式

2022-07-26 22:32:50  阅读:148  来源: 互联网

标签:... draw obj 模式 工厂 shape print Circle 设计模式


 工厂模式

  工厂模式(Factory Pattern)是 最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

  在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

 

  效果:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

  适用性:

          当一个类不知道它所必须创建的对象的类的时候。

          当一个类希望由它的子类来指定它所创建的对象的时候。
          当类将创建对象的职责委托给多个子类中的某一个。

  实现如下:

 1 # # -*- coding:utf-8 -*-
 2 __author__ = "xiaomagua"
 3 
 4 class Shape(object):
 5     def draw(self):
 6         print("draw noting...")
 7 
 8 class Circle(Shape):
 9     def draw(self):
10         print("draw circle...")
11 
12 class Rectangle(Shape):
13     def draw(self):
14         print("draw rectangle...")
15 
16 
17 class ShapeFactory:
18     def get_shape(self, shape):
19         if shape == "Circle":
20             return Circle()
21         elif shape == "Rectangle":
22             return Rectangle()
23         else:
24             print("illegal parameter...")
25             return None
26 
27 shape_factory = ShapeFactory()
28 circle_obj= shape_factory.get_shape("Circle")
29 circle_obj.draw()
30 
31 rectangle_obj= shape_factory.get_shape("Rectangle")
32 rectangle_obj.draw()

 

标签:...,draw,obj,模式,工厂,shape,print,Circle,设计模式
来源: https://www.cnblogs.com/xiaomagua/p/16522930.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有