Python单利模式,简单工厂实现,import自定义模块

import mypackage.ZString as zs
‘‘‘
单利模式
‘‘‘

class User(object):
__instance = None

def __init__(self, name, age):
    self.name = name
    self.age = age
    print(‘name=%s,age=%s‘ % (self.name, self.age))

def __new__(cls, name, age):
    if not cls.__instance:
        cls.__instance = object.__new__(cls)
    return cls.__instance

u1 = User(‘tom‘, 18)
u2 = User(‘jack‘, 28)

print(u1 == u2)
print(id(u1))
print(id(u2))

‘‘‘
工厂模式
‘‘‘

class Person(object):
def init(self, name):
self.name = name

def work(self, axe_type):
    print(‘%s开始工作了‘ % self.name)
    # axe=StoneAxe(‘花岗岩‘)
    # axe=SteelAxe(‘加爵‘)
    axe = Factory.get_axe(axe_type)
    if not axe == None:
        axe.cut_tree()

class Axe(object):
def init(self, name):
self.name = name

def cut_tree(self):
    print(‘%s进行砍树了‘ % self.name)

class StoneAxe(Axe):
def cut_tree(self):
super().cut_tree() # 子类调用父类方法
print(‘使用石头做的斧头砍树‘)

class SteelAxe(Axe):

def cut_tree(self):
    super().cut_tree()  # 子类调用父类方法
    print(‘使用钢铁做的斧头砍树‘)

class Factory(object):

静态简单工厂方法

@staticmethod
def get_axe(axe_type):
    if axe_type == "stone":
        return StoneAxe(‘花岗岩‘)
    elif axe_type == "steel":
        return SteelAxe(‘加爵‘)
    else:
        print(‘你输入错误吧‘)

p = Person(‘张三‘)
p.work(‘steel‘)

def get_str():
s=None
print(zs.isnull(s))

get_str()

字符串为None时为True,为空时也True,否则为False

def isnull(str):
if not str:
return True
elif str.strip() == ‘‘:
return True
else:
return False

if name == ‘main‘:
t=None
print(isnull(t))

原文地址:http://blog.51cto.com/6000734/2313272

时间: 2024-10-22 09:00:15

Python单利模式,简单工厂实现,import自定义模块的相关文章

工厂模式——简单工厂模式

工厂模式分三类:简单工厂模式.工厂方法模式.抽象工厂模式. 首先介绍比较简单一种工厂模式——简单工厂模式. 我们以计算器作为一个例子来说明工厂模式到底是什么.作为一个几年前大一从C语言起步的初级程序员,到现在写代码的思维还是停留在结构化编程,虽然Java学了有几年了,总是说面向对象面向对象.但是让实现一个计算器的程序,估计大部分人都会以C语言式的结构化编程来写,几个if语句或者一个switch来搞定.我也同样不例外,为了提高自己的编程水平,所以一点点开始学设计模式.其实在很多开源代码里也有很多经

“模”法无边—策略模式+简单工厂实现下机收费

下机收费是一种算法,临时用户和学生下机下机就是两种算法,让我想到了使用策略模式,根据是否为临时用户和学生,选择具体的算法,这属于简单工厂,好的,简单工厂+策略模式实现下机收费 策略类-封装具体的策略   '封装具体的算法,需要引用一个算法 Public Class consumeContext     Dim strategyconsume As Consume       Sub New(ByRef strategy As Consume)         Me.strategyconsume

及房重构利用策略模式+简单工厂实现消费金额的计算

在做第一次机房收费系统中,有一项很令人头疼的事情,那就是临时用户的问题,在结账的时候,我们需要考虑该用户是固定用户还是临时用户,原来在用VB6.0做的时候,如果我们实现了这个功能,那么在代码中会出现很多的IF....else 语句,同时,我们必须要调用数据设定窗体中的数据,这样的话,会很麻烦,写出来的代码也会很乱,如今学习了设计模式,我们可以利用策略模式来实现对不同用户的消费金额进行计算.将不同的类型用户所用到的不同算法封装到子类中去,同时与简单工厂结合起来,来实现对不同子类的实例化.这样在很大

创建型模式 简单工厂模式

创建型模式 简单工厂模式 /** * 创建型模式 简单工厂模式 * 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式.通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. * * 1.工厂(Creator)角色 * 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑.工厂类可以被外界直接调用,创建所需的产品对象. * 2.抽象(Product)角色 * 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口. * 3.具体产品(Concrete P

【一起学设计模式】状态模式+装饰器模式+简单工厂模式实战:(一)提交个订单我到底经历了什么鬼?

前言 之前在我的博客(一枝花算不算浪漫)中已经更新过两篇设计模式相关的内容 [一起学设计模式]策略模式实战一:基于消息发送的策略模式实战 [一起学习设计模式]策略模式实战二:配合注解 干掉业务代码中冗余的if else... [一起学设计模式]访问者模式实战:权限管理树删节点操作 [一起学设计模式]命令模式+模板方法+工厂方法实战: 如何优雅的更新商品库存... 上面内容都是基于真实业务场景精简后的设计(工作中真实场景使用到的). 之前为了学习设计模式,看过网上很多相关博客讲解,大都是画下UML

python设计模式 之 简单工厂模式

简单工厂模式属于类的创建型模式,适合用来对大量具有共同接口的类进行实例化,它可以推迟到运行的时候才动态决定要创建哪个类的实例,而不是在编译时就必须知道要实例化哪个类. python: #!/usr/bin/env python # -*- coding: utf-8 -*- class Circle(object): def draw(self): print 'draw circle' class Rectangle(object): def draw(self): print 'draw R

总结工厂模式---简单工厂、工厂方法、抽象工厂

简单工厂 首先,我们先看一个简单工厂的例子: #coding=utf-8 class Mercedes(object): """梅赛德斯 """ def __repr__(self): return "Mercedes-Benz" class BMW(object): """宝马 """ def __repr__(self): return "BMW&quo

JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象. 在这些情况,新对象的建立就是一个 "过程",不仅是一个操作,像一部大机器中的一个齿轮传动. 模式的问题:你如何能轻松方便地构造对象实例,而不必关心构造对象实

设计模式之工厂模式-简单工厂(02)

设计模式分创建型.行为型.结构型: 工厂模式属于创建型模式,分(1)简单工厂(静态工厂)(2)工厂方法(3)抽象工厂,下面分别通过代码来介绍(本篇文章北风网的视频看后写的): (一)简单工厂 简单工厂描述:通过专门定义的一个类来创建其他类的实例,被创建的实例通常都具有共同的父类: 简单工厂的角色及其职责:(1)工厂角色[creator]:该模式的核心,负责创建所有实例的内部逻辑,工厂类可以被外界直接调用,创建所需要的产品实例(2)抽象角色[Product]:简单工厂模式 所创建的所有对象的父类,