自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NasonYehfm程式開發園地

Python編程(入門->進階)

  • 博客(33)
  • 收藏
  • 关注

转载 UML用例建模解析

UML用例建模解析(一)【作者:刘伟 http://blog.csdn.net/lovelion】UML是软件开发中绘制软件蓝图使用标准语言之建模技术,通过UML可以构造软件系统的需求模型(用例模型)、静态模型、动态模型和架构模型。UML是以图形和文字符号来描述一个系统,越来越多的软件企业在招聘中也需要应聘者具备一定的UML知识基础和实践经验。很多人在尝试使用UML图形来构造一个软件系...

2019-05-21 02:09:55 1074

转载 以StarUML實作类图

UML 剖析(1) —— 类图实体0. 简介UML 就是将软件的各种状态以图表的方式展现出来。因为 UML 涉及的图表非常的多,这里只介绍比较重要的类图、时序图、用例图,为了加深读者的理解,这里会使用 StarUML 来讲解。1. 类图1.1 概念类图就是表示系统中包含了哪些实体,各实体之间如何关联的。1.2 类图组成从概念就可以知道类图其实就是由两部分组成的,一个是实...

2019-05-21 02:02:08 1183

原创 UML图中类別之间的关系(依赖,泛化,关联,聚合,组合,实现)與代碼實作

类別1) 类別(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作的对象的集合总称。2) 在系统中,每个类具有一定的职责,在定义类的时候,将类的职责分解成为类的属性和操作。3) 类的属性即类的数据职责,类的操作即类的行为职责一、依赖关系(Dependency)• 依赖关系(Dependency)是一种使用关系,特定事物的改变有可能...

2019-05-21 00:44:55 268

原创 行為型模式--备忘录模式

备忘录(Memento)模式可在不破坏封装性的前提下捕获一个对象的内部状态,并在该对象外保存这个状态,如此之后就可将该对象恢复到原先保存的状态。UML类图:Originator(起始者):负责创建一个Memento备忘录用以记录当前时刻之内部状态,Originator可根据需求來决定Memento要储存那些内部状态,以讓日後可使用备忘录來恢复内部状态。 Memento(备忘录)...

2019-05-17 11:42:21 163

原创 行為型模式--迭代器模式

迭代器(Iterator)模式主要分离集合的遍历行为並抽象出一个迭代器类来负责模式之運作,这样既可以做到不暴露集合内部结构,又可以让外部可透明访问集合内部的数据,当需要对集合結構作不同遍历时便可考虑使用此模式。UML类图:示例:#!/usr/bin/env python#! _*_ coding:UTF-8 _*_from abc import ABCMeta, abstra...

2019-05-17 10:45:47 150

原创 行為型模式--访问者模式

此模式一般作用於数据结构中對各元素之操作,它可使在不改变各元素的前提下重新定义作用于这些元素的新操作,故可将数据結构與数据处理解耦,讓数据結构只提供数据处理的接口,此数据結构的处理者便是访问者,日後只要数据结构要面临不同处理的结果时,只需要创建不同的访问者即可。UML类图: 示例:# encoding=utf-8import abcclass Program: #基于数...

2019-05-16 15:26:51 97

原创 行為型模式--中介者模式

用於封装一系列同事对象交互通信之中間媒介,此模式可使各同事对象不需要以显式直接作交互作用,从而使其達到解耦之目的,并可容易日後來改变它们之间的交互,一般应用於一组同事对象已被良好定义但須以复杂方式來进行交互通信之场合中。类图:示例: #!/usr/bin/env python# -*- coding:utf-8 -*-Import abcclass Mediator(...

2019-05-16 11:25:10 116

原创 行為型模式--桥接模式

将需求分离各部份使它们可各自独立变化,之後再透过接口传递参数來引用以实现调用以達到解耦之目的,如將手机依软件和品牌作分类以便降低耦合程度,再讓两种分类以方法透過參數傳遞來引用以最終組合手機之整体需求,此桥接模式可讓需求分离成各分类以可獨自变化且不影响其他分类以降低耦合程度。UML类图:示例:#!/usr/bin/env python# -*- coding:utf-8 -...

2019-05-15 11:20:33 125

原创 创建型模式--建造者模式

當欲创建一个由多个部分組成的对象,而且它的构成需要依序完成,此時使用建造者(Builder)模式正是最佳的解決方案,利用此模式可将一个复杂对象的构造过程与其表现完全分离,且同一个构造过程可以产生多个不同的表现,这种需求存在于许多应用開發中,如HTML页面生成器、文档转换器以及UI表单创建工具等場合。示例:以建造者模式定制电脑各部份之構建過程class Computer: ...

2019-05-14 16:36:05 112

原创 创建型模式--原型模式

原型(Prototype)模式主要用於创建对象的克隆,通常其最简单的形式就是採用自定clone()函数並傳入对象参数以返回此对象的一个副本,這在Python實作上可使用內定copy.copy()或copy.deepcopy()函数来達到此目的。当已有一个对象但對此对象的某些部分会被变更卻又想保持原有对象不变之部份时,此時便可利用此对象的副本來進行改造,這就可採用原型模式來協助開發工作,因...

2019-05-14 15:23:42 109

原创 创建型模式--享元模式

享元(Flyweight)模式为相似对象引入数据共享以最小化使用内存,即可提供状态独立不可变之数据共享对象以促使提升性能。由於享元主旨在数据共享和优化内存性能,故對嵌入式系统(如手机、平板电脑和微控制器等)與性能具切切关键的应用(游戏、3D图形处理和实时系统等)都能从其获益,一般在應用開發上要使用享元模式,通常需满足以下几个条件:當应用需要使用大量的对象。 當有多組对象則储存或渲染它们...

2019-05-14 11:33:46 119

原创 以PowerDesigner畫UML类圖

UML类图操作(一)类图(Class Diagram)用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析设计阶段的重要产物,也是编码测试的重要模型依据。在uml2.0中,类图使用的频率是最高的,这里使用PowerDesigner16.5版本来操作。首先我们先要了解类图的显示结构,其次再來了解类間之結合关系,由於类有普通类、抽象类、接口(*即介面)之區別,...

2019-05-13 15:19:52 1301

原创 Python內置collections.abc抽象类之定義

打开文件 Python\Python36\Lib_collections_abc.py 找到一下内容,都是抽象元类。_all__ = ["Awaitable", "Coroutine", "AsyncIterable", "AsyncIterator", "AsyncGenerator", "Hashable", "Iterable", "...

2019-05-13 12:05:49 1050

原创 Python abc (Abstract Base Classes)之使用

abc如何工作abc可将基类抽象化,之後再注册此抽象类的具体实现,你可以使用issubclass() 或isinstance()检测此抽象类的具体对象。首先定义一个基础抽象类(*儲存為abc_base.py模組),例如要作保存和加载数据:import abcclass PluginBase(object): __metaclass__ = abc.ABCMeta...

2019-05-13 11:45:41 359

转载 Python ABC(抽象基类)

轉自:https://blog.csdn.net/qijiqiguai/article/details/77269839ABC(Abstract Base Class抽象基类)主要定义了不需要具体实现之基本类和抽象方法,可以为子类定义共有的API,相当于是Java中的接口或者是抽象类。 Python 对于ABC的支持模块是abc模块,定义了一个特殊的metaclass:ABCM...

2019-05-13 10:14:05 5720

原创 結構型模式--裝饰器模式

在應用開發中如果欲对一个创建对象再度添加额外的功能時,一般則有下面这些可选的不同方法:将功能直接添加到此对象所属的类中,如添加一个新的方法 使用组合方式將另一含新功能之對象加入此對象中 使用继承方式再於子類中新增功能如与继承相比,通常应该优先选择组合方式,因为继承关系是静态的,其应用會擴及整个类以及这个类的所有实例。除此之外,修饰器模式可为我们提供第四种可选方法,此模式可支持运行时...

2019-05-11 08:21:42 131

原创 結構型模式--适配器模式

适配器模式(Adapter pattern)是用來实现不兼容接口之间的轉換媒介,例如想把舊组件用于新系统或把新组件用于老系统中,一般若不对代码进行任何修改使两者就能够通信的情况則很少见,但修改代码又不切实际或可能无法直接访问这些代码(*组件是第三方以外部库方式提供),此時可编写一个额外的代码层來让新舊接口之间能够交互通信,这个代码层就是适配器。示例:class Synthesizer...

2019-05-10 10:32:47 111

原创 创建型模式--工厂模式

將对象的创建可独立於某定制类來進行,客户端无需了解创建对象如何被创建,只需知道要传递的接口、方法、参数就能够创建所需类型的对象,日後可轻松地在工厂中再添加其它类型以创建对象,而无需更改客户端代码。工广模式主要分类:简单工厂模式:定義統一工广並提供訪問接口,並對傳入參數進行需求對象之创建,此式通常用於一次创建單一實例之場合中。 工厂方法模式:定義抽象工广並提供共用訪問接口並讓其繼承具...

2019-05-09 22:58:05 188

原创 创建型模式--单例模式

使用机制:确保類只會被创建一个对象,一般會提供一个全局访问点讓程序可访问该对象,通常使用於共享资源的并行访问之控制,如常見於日志记录、数据库操作、印表机后台处理程序之場合中,此處值得一提的是Python所有的模块也都是採用单例模式使用於應用程序開發中。示例:# encoding: utf-8class Singleton(object): #单例模式...

2019-05-09 13:09:13 101

原创 行為型模式--责任链模式

责任链(Chain of Responsibility)模式用于让多个对象可来处理单个请求之情況,其運作原则如下所示:存在一个对象链(如直链表、树或任何其他数据结构)。 客戶端将请求发送给链中的第一个对象。 某一对象可决定是否处理该请求,若無則将请求转发给下一对象,重复此过程直到链尾。對客户端之請求仅需要知道如何与链的起始节点处理元素进行通信即可,而不須拥有处理元素的所有引用,但每...

2019-05-07 21:05:54 124

原创 行為型模式--模板方法模式

模板方法模式(*IoC反向呼叫之概念)定義多个接口之抽象类,可讓繼承不同子类來实现其接口以達到不同操作行為,且依需求設計模板方法調用必要接口轉而反向呼叫(IoC)子類實作之方法,此有助于减少代码之重用且可避免重复工作,另可達到多態設計的弱引用。UML类图AbstractCls抽象類: 定义操作步驟之各接口,这些接口必須被不同具体子类來實作之其行為,而tmplate_metho...

2019-05-05 16:48:14 132

原创 行為型模式--状态模式

重點着力於对象交互时状态之变化,本质上相当於实现一个状态机来解决特定领域的一个软件问题,状态机有两个关键部分:状态和转换,其中状态是指系统当前状况;转换則指因某个事件或条件的触发而从一个状态切换到另一个状态,此通常會在一次转换发生之前或之后执行某些动作。UML图狀態State抽象類:声明对象行为之接口,而行为要与目前对象的状态相关联。 狀態ConcreateStateA/Con...

2019-05-05 10:02:02 106

原创 Python介面與抽象類別之設計:abc模組(Abstract Base Classes)

Python中介面與抽象類別之設計:abc模組(Abstract Base Classes)介面作法如下:抽象類別作法如下:01. Quickstart Tutorial使用 Python abc模組的原因是為了要解決 Python 沒有「抽象類別 (abstract class)」的問題。透過抽象類別,我們可以建立一個比使用 hasattr()還要更嚴格的類別介面 (...

2019-05-05 09:59:43 2223

转载 Python面向對象--進階篇

上一篇《Python 面向对象(初级篇)》文章只介绍了面向对象基本知识,本篇将详细介绍Python 类的成员、成员修饰符、类的特殊成员。类的成员类成员可分三大类:字段、方法和属性注:在所有成员中,只有方法中定義之普通字段的内容會保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段。而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份。一、字段...

2019-05-04 10:06:04 84

原创 行為型模式--命令模式

简介以請求作為主導角色對封装完成一项操作(如撤销、重做、复制、粘贴等)或在觸发一个事件(如滑鼠單擊、雙擊等)时執行所需行為,简而言之,这意味着创建一个命令类來包含该操作/事件所需的逻辑動作並由請求主導該命令之執行。之後客戶端就可下達請求來調用此命令類以執行。 可將调用与执行命令的对象解耦,调用者无需知道命令的任何实现细节。 亦可組合命令,如在实现一个多层撤销命令时,此在應用中非...

2019-05-03 14:13:02 116

原创 結構型模式--观察者模式

定义对象间具有一对多的依赖关系,使得當主对象有任何變化時則發出通知給其它依赖对象,此模式可對關注的核心主题對象(*即依賴對象)進行再次封装。常見之應用场景如下:分布式系统中实现事件之服务。 新闻机构的框架。 股票市场。UML图:主题Subject類:主要負責引入ConcreteObserver具体類作為關注對象,故須提供注册/注銷方法以可對ConcreteObserver...

2019-05-03 10:25:14 206

原创 結構型模式--門面模式

门面设计模式 主要目的是提供统一子系統的高级接口,用单一接口来表示复杂的子系统,实际上它并不是封装子系统,而是对底层子系统功能进行必要组合,再将客户端的请求透過此接口再委托给包含在其下之相应子系统來處理(*即处理门面所分配的工作)。UML图客户端只要与门面作交互,这样就可以轻松地与子系统进行通信并完成工作。 示例:# -*- ...

2019-05-02 13:13:24 97

转载 深入浅出UML类图

深入浅出UML类图(一) 在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition》(《UML精粹:标准对象建模语言简明指南(第3版)》)中有这么一段:“If someo...

2019-05-02 12:48:08 244

转载 Python面向對象--初級篇

概述· 面向过程(結構化):著重於根据业务逻辑从上到下写代码· 函数式:著重於将功能代码封装到函数中,日后便无需重复编写,仅需调用函数即可· 面向对象:著重於將函数依類別作封装,让开发更穩健面向过程编程最易被初学者接受,其往往只要用一段长代码来实现指定功能,但开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到所需功能处。 ...

2019-05-02 09:37:07 141

原创 結構型模式--代理模式

代理模式之使用场景:可提高對现有实际对象的安全性:一般不允许客户端直接访问实际对象,这是因为实际对象可能會受到恶意活动的危害,此时使用代理可作為抵御恶意活动的盾牌作用以保护实际对象。 可为使用远程对象提供本地接口:以本地作為远程对象之緩存,一般會将客戶端请求先行交给本地代理对象來處理,之后如有需要可再转交该请求由远程机器上來执行。 可为消耗大量内存的对象提供轻量级句柄:因有时候可能不想加载...

2019-05-02 06:15:18 144

原创 行為型模式--迭代器模式

迭代器模式(Iterator)用于依序遍歷访问集合对象的每一元素,但不暴露集合對象的内部结构,只允許让外部來访问集合内部的数据,在實作上通常會抽象出一个迭代器类並含有hasNext()及 next()之接口定义,再由其繼承具体子類負責集合对象的遍历行为之功能。示例:from abc import ABCMeta, abstractmethodclass Iterator(obje...

2019-05-01 06:33:02 107

原创 结构型模式-组合模式

组合模式(Composite)是用于將目前对象視為整体而把要納入協同作業之其它对象(*可能為一個或一组)視為部份,此種模式會依树形结构来表現其組織层次,在此树型结构下客户端可透過對目前對象之处理即可操控其下組織之組成對象,實作上整体對象只要提供接口供外界來調用(*通常定義在抽象基類中),且内部須配有list型態之集合属性來存放部份對象(*通常定義在繼承之具体子類中),在使用场景上只要須具備树...

2019-04-30 15:11:08 134

原创 用設計模式改善軟件設計

一、什麼是設計模式設計模式使得人們可以更加方便地去發展成功的軟件設計,從而能夠幫助設計者更好地完成系統設計。設計模式通常是對於某一類軟件設計問題提供可重用的解決方案,最終目標就是幫助人們利用軟件設計師的集體經驗來設計出更加優秀的軟件,我們只要搞清楚這些設計模式,就可以完全或者說很大程度上吸收了那些蘊含在模式中的寶貴經驗,從而對軟件體系結構有了比較全面的了解,實際工作中一旦遇到具有相同背景的...

2019-04-30 12:25:40 243

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除