程序设计模式 工厂模式 单立模式

工厂模式

‘工厂模式‘
class msg(object):

    def mail(self,msg):
        pass

    def sms(self,msg):
        pass

    def weixin(self,msg):
        pass

    def sender(self,msg,msg_type):
        if msg_type == ‘sms‘:
            self.sms(msg)
        elif msg_type == ‘mail‘:
            self.mail(msg)

单立模式

    
  #!/usr/bin/python
# -*- coding: utf-8 -*-

__author__ = ‘gaogd‘

‘‘‘
单立模式
‘‘‘
def singletion(cls):
    instances = {}

    def warpper(*args,**kwargs):
        if cls not in instances:
            instances[cls] = cls(*args,**kwargs)
        return  instances[cls]
    return  warpper

@singletion
class Myclass(object):

    def __init__(self,n):
        self.n = n

c = Myclass(‘10‘)
c2 = Myclass(‘20‘)
## 装饰器的作用:   @singletion 《=》 Myclass = singletion(Myclass)

# print ‘--->‘,c.n ,c2.n

#方法2,实现__new__方法
#并在将一个类的实例绑定到类变量_instance上,
#如果cls._instance为None说明该类还没有实例化过,实例化该类,并返回
#如果cls._instance不为None,直接返回cls._instance
class Singleton(object):
    def __new__(cls, *args, **kw):
        if not hasattr(cls, ‘_instance‘):   ##如果cls中不包含_instance方法,就执行下面
            orig = super(Singleton, cls)     ##继承原始的类
            cls._instance = orig.__new__(cls, *args, **kw) ##在这个类上面添加_instance方法
        return cls._instance  ##返回这个新类

class MyClass1(Singleton):
    a = 1

one = MyClass1()
two = MyClass1()
two.a = 5
print one.a,two.a

### __new__()方法负责生成__init__()方法的
时间: 2024-10-25 18:01:44

程序设计模式 工厂模式 单立模式的相关文章

php设计模式 工厂、单例、注册树模式

Source Code Pro字体  easyphp 命名空间:隔离类和函数,php5.3以后 //test5.php<?php namespace Test5;//命名空间必须是程序脚本的第一条语句,除了declare function test(){ echo __FILE__; } //test6.php<?php namespace Test6; function test(){ echo __FILE__; } <?phprequire 'test5.php'; require

Java设计模式:Singleton(单例)模式

概念定义 Singleton(单例)模式是指在程序运行期间, 某些类只实例化一次,创建一个全局唯一对象.因此,单例类只能有一个实例,且必须自己创建自己的这个唯一实例,并对外提供访问该实例的方式. 单例模式主要是为了避免创建多个实例造成的资源浪费,以及多个实例多次调用容易导致结果出现不一致等问题.例如,一个系统只能有一个窗口管理器或文件系统,一个程序只需要一份全局配置信息. 应用场景 资源共享的情况下,避免由于资源操作时导致的性能或损耗等.如缓存.日志对象.应用配置. 控制资源的情况下,方便资源之

CentOS6.3修复模式/单用户模式修改fstab文件

今天修改LVM逻辑卷的名称时候,忘记更改fstab配置文件了,导致机器重启后找不到盘,进不了系统!立即用光盘进入修复模式进行修复!  1.修复模式操作方法: 用光盘进入Linux修复模式,插入centos光盘选择第三项:Rescue installed system 然后修改fstab 注意进入修复模式后fstab路径为 vi /mnt/sysimage/etc/fstab 2.单用户模式操作方法 进入Linux单用户模式 执行 root# mount -o remount,rw / 然后/et

设计模式——工厂和单例

一.工厂模式(以计算器为例) 1.一个运算的类,我们要为他拓展,不能在该类里面进行拓展,要在其外面在写一个子类继承他,对该子类进行方法的增加,以此来拓展这个运算类 <?php class YunSuan { public $a; public $b; public function Suan() { } } class Jia extends YunSuan { public function Suan() { return $this->a+$this->b; } } 2.工厂模式就是

centos7救援模式--单机模式(单用户模式)

前序 经典问题: 单机模式, 当系统忘记某用户登录密码的时候可以解决密码重置问题 操作 1 开机的时候出现选择进入系统的界面时, 按E键 2 选择定位到ro这里, 替换成rw init=/sysroot/bin/bash 3 到这个页面就相当于win的安全模式下,先切换到本机系统,输入命令 chroot /sysroot/ 回车,因为虚拟机不支持中文显示,所以还要再输入命令 LANG=en 回车,不切换英文的话,会有乱码. 4 下面进项修改密码 5 如果之前系统启用了selinux,必须执行to

4-11第二课:yum使用、单用户模式、救援模式

一.YUM使用 yum (全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载 RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载.安装.    yum list                 列出指定yum源中所有本地已安装或未安装的包    yum grouplist        列出指定yum源中所有本地已

CentOS 7 单用户模式+救援模式

CentOS 7 单用户模式+救援模式.有时候大家可能会忘记自己的root密码,或者错误(命令输入错误,命令位置输入有误等)编辑了一个/etc目录下的核心文件导致系统不能正常启动了!怎么办?重新安装系统那是实在没有办法之举!那我们就进入如下两种方式把错误的配置文件改过来,重启系统不就好了吗!接下来咱们就学习一下两种模式恢复系统Lunix单用户模式+救援模式 单用户模式+救援模式类似windows的安全模式 使用虚拟机在系统里面输入指令重启系统是不能达到我们的要求的,也就是说IDC机房可不是想进就

1.13 单用户模式

1.13 单用户模式 单用户模式 单用户模式就是系统处于最原始的状态,所有网络服务都未启动,文件系统都没有mount,只有最基础的系统module被加载,然后由kernel启动进入命令行状态.这样的状态我们称之为单用户模式. 重启办法 reboot.init 6.shutdown -r now 关机办法 init 0.poweroff 进入单用户模式方法 (1)重启后 在出现启动界面时,按一下方向键,将会在这个界面停留: (2)选择第一项,按e 进入编辑,进入grub 界面 ,找到 linux1

利用紧急救援和单用户模式处理简单异常

有时我们会碰到系统不能正常启动的情况,可能有以下几种原因,这里列出了解决方法 一.grub文件损坏 二.bash损坏 三.开机后忘记密码或者脚本设置问题 一.grub文件损坏 grub配置文件损坏,这里我们人为将文件改名后并重启系统 系统重启,将会到该grub提示符界面 解决方法 1.指定根分区,不知道可以用find (hd0,0)/,然后敲tab键补全,找一下根分区,也就是存放内核的分区 2.找到根分区后,root到根分区,指定kernel文件和initrd文件,然后boot系统 3.RHEL