码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之桥接模式

时间:2020-06-17 01:30:53      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:str   from   绿色   rom   info   nbsp   设计   bsp   ini   

from abc import ABCMeta, abstractmethod


"""
桥接模式:将抽象与实现解耦,使得他们可以毒力的变化
桥接模式关注的是抽象和实现的分离,使得它们可以独立发展;
桥接模式是结构性模式,侧重于软件结构。而策略模式关注的是对算法、规则的封装,
使得算法可以独立于使用它的用户而变化;策略模式是行为模式,侧重于对象行为。
"""
class Shape(metaclass=ABCMeta):
    """形状"""
    def __init__(self, color):
        self._color = color

    @abstractmethod
    def getShapeType(self):
        pass

    def getShapeInfo(self):
        return self._color.getColor() + "" + self.getShapeType()


class Rectange(Shape):
    """矩形"""
    def __init__(self, color):
        super().__init__(color)

    def getShapeType(self):
        return "矩形"


class Ellipse(Shape):
    """椭圆"""
    def __init__(self, color):
        super().__init__(color)

    def getShapeType(self):
        return "椭圆"


class Color(metaclass=ABCMeta):
    @abstractmethod
    def getColor(self):
        pass


class Red(Color):
    """红色"""
    def getColor(self):
        return "红色"


class Green(Color):
    """绿色"""
    def getColor(self):
        return "绿色"


def testShape():
    redRect = Rectange(Red())
    print(redRect.getShapeInfo())
    greenRect = Rectange(Green())
    print(greenRect.getShapeInfo())


if __name__ == "__main__":
    testShape()

 

设计模式之桥接模式

标签:str   from   绿色   rom   info   nbsp   设计   bsp   ini   

原文地址:https://www.cnblogs.com/loveprogramme/p/13149955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!