python外觀模式

2021-10-23 21:42:56 字數 3127 閱讀 1947

外觀模式隱藏了內部物件的複雜性,向外提供了簡單的一致性介面

from enum import enum

from abc import abcmeta, abstractmethod

state = enum(

'state'

,'new running sleeping restart zombie'

)class

user

:pass

class

process

:pass

class

file

:pass

class

server

(metaclass=abcmeta)

: @abstractmethod

def__init__

(self)

:pass

def__str__

(self)

:return self.name

@abstractmethod

defboot

(self)

:pass

@abstractmethod

defkill

(self, restart=

true):

pass

class

fileserver

(server)

:def

__init__

(self)

:'''初始化檔案服務程序要求的操作'''

self.name =

'fileserver'

self.state = state.new

defboot

(self)

:print

('booting the {}'

.format

(self)

)'''啟動檔案服務程序要求的操作'''

self.state = state.running

defkill

(self, restart=

true):

print

('killing {}'

.format

(self)

)'''終止檔案服務程序要求的操作'''

self.state = state.restart if restart else state.zombie

defcreate_file

(self, user, name, permissions)

:'''檢查訪問許可權的有效性、使用者許可權等'''

print

("trying to create the file '{}' for user '{}' with permissions{}"

.format

(name, user, permissions)

)class

processserver

(server)

:def

__init__

(self)

:'''初始化程序服務程序要求的操作'''

self.name =

'processserver'

self.state = state.new

defboot

(self)

:print

('booting the {}'

.format

(self)

)'''啟動程序服務程序要求的操作'''

self.state = state.running

defkill

(self, restart=

true):

print

('killing {}'

.format

(self)

)'''終止程序服務程序要求的操作'''

self.state = state.restart if restart else state.zombie

defcreate_process

(self, user, name)

:'''檢查使用者許可權和生成pid等'''

print

("trying to create the process '{}' for user '{}'"

.format

(name, user)

)class

windowserver

:pass

class

networkserver

:pass

class

operatingsystem

:'''外觀'''

python 外觀模式

外觀模式又叫做門面模式。在物件導向程式設計中,解耦是一種推崇的理念。但事實上由於某些系統中過於複雜,從而增加了客戶端與子系統之間的耦合度。例如 在家 多 影院時,更希望按下乙個按鈕就能實現影碟機,電視,音響的協同工作,而不是說每個機器都要操作一遍。這種情況下可以採用外觀模式,即引入乙個類對子系統進行...

python 外觀模式

內容 為子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使得這一系統更加容易使用 角色外觀 facade 子系統類 subsystem classes 子系統 class cpu def run self print cpu開始執行 def stop self print ...

python設計模式 外觀模式

學習版本3.5.2 外觀模式 facade pattern 向客戶端提供乙個可以訪問系統的介面,隱藏了系統的複雜性。比如說,生產a產品需要abc三個流水線生產的零件,我只想管a產品的生產。class productionlinea object def create self print creat...