资讯专栏INFORMATION COLUMN

设计模式--抽象模式

VincentFF / 1080人阅读

摘要:子类,工厂子类,调用工厂子类需要抽象类定义子类模式,工厂类需要定义抽象类规范模式。类的功能要单一,每个只做一种功能,管理一类数据,定义要不怕多,通过上级管理起来提升所有的子,工厂,需要定义抽象类,规范格式。

1.子类 class, 工厂子类class, 调用工厂class
2.子类需要抽象类定义子类模式, 工厂类需要定义抽象类规范模式。 每一个工厂类管理    
 管理类管理工厂类。
3.应用:最复杂的模式:一个接口有很多的调用实例,   调用实例可以分为不同情况,不> >      同的工厂进行管理。

4.总起来看,出口要简洁统一,内部分别管理。

 class类的功能要单一,每个只做一种功能,管理一类数据,定义class要不怕>多,通过

上级管理起来
5.提升:所有的子class,工厂class,需要定义抽象类,规范格式。

import random
"""

    
                         
"""

class Dog:
    def speak(self):
        return "whoof"
    def __str__(self):
        return "dog"

class Cat:
    def speak(self):
        return "meow"
    def __str__(self):
        return "cat"

class DogFactory:
    def get_pet(self):
        return Dog()
    def get_food(self):
        return "dog food"

class CatFactory:
    def get_pet(self):
        return Cat()
    def get_food(self):
        return "cat food"

class PetFactory:
    def __init__(self,pet_factory=None):
        self.pet_factory=pet_factory
    def show_pet(self):
        pet=self.pet_factory.get_pet()
        print("This is a lovely", pet)
        print("speak   ==>",pet.speak())
        print("get_food==>",self.pet_factory.get_food())

# Show pets with various factories

def get_factory():

    """Let"s be dynamic!"""

    return random.choice([DogFactory, CatFactory])()



shop = PetFactory()

for i in range(3):

    shop.pet_factory = get_factory()

    shop.show_pet()

    print("=" * 10)







文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44933.html

相关文章

  • JavaScript工厂模式

    摘要:基于工厂角色和产品角色的多态性设计是工厂方法模式的关键。工厂方法模式之所以又被称为多态工厂模式,是因为所有的具体工厂类都具有同一抽象父类。工厂方法模式总结工厂方法模式是简单工厂模式的进一步抽象和推广。 JavaScript工厂模式 首先需要说一下工厂模式。工厂模式根据抽象程度的不同分为三种 简单工厂模式 工厂方法模式 抽象工厂模式 1.简单工厂模式 简单工厂模式:又称为静态工厂方法...

    oujie 评论0 收藏0
  • js常用设计模式实现(二)工厂模式抽象工厂模式

    摘要:抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。前边的两个都是直接生产实例的,开始以为抽象工厂也是但是后来发现抽象工厂更像是生产工厂,其实抽象工厂其实是实现子类继承父类的方法。 创建型模式 创建型模式是对一个类的实例化过程进行了抽象,把对象的创建和对象的使用进行了分离 上一篇介绍了下单例模式,这一篇介绍一下工厂模式和抽象工厂模式,...

    meteor199 评论0 收藏0
  • PHP高级特性-反射Reflection以及Factory工厂设计模式的结合使用[代码实例]

    摘要:反射提供给面向对象编程可以自省的能力,即反射。在简单工厂模式中,根据传递的参数来返回不同的类的实例简单工厂模式又称为静态工厂方法模式。也就是简单工厂模式工厂工厂类。PHP高级特性-反射以及工厂设计模式的结合使用 [结合 Laravel-Admin 代码实例讲解]利用反射来实现工厂模式的生产而无需创建特定的工厂类本文地址http://janrs.com/?p=833转载无需经过作者本人授权转载...

    番茄西红柿 评论0 收藏2637
  • “大话”设计模式

    摘要:抽象工厂模式是为了处理对象具有等级结构以及对象族的问题。单例设计模式单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类成为单例类。 导语:设计模式是无数码农前人在实际的生产项目中经过不断的踩坑、爬坑、修坑的经历总结出来的经验教训,经过抽象之后表达成的概念。能够帮助后来的设计者避免重复同样的错误或者弯路。我也抽空整理了一下设计模式,用自己的话总结了一下,自认...

    coordinate35 评论0 收藏0
  • PHP设计模式(三)抽象工厂模式(Abstract Factory)

    摘要:支持增加任意产品抽象工厂用来生产不同产品族的全部产品。对于增加新的产品,无能为力支持增加产品族参考系列源地址系列目录设计模式概述设计模式一简单工厂模式设计模式二工厂方法模式设计模式三抽象工厂模式设计模式四单例模式 一、什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次...

    W_BinaryTree 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<