From afc5d7535baef8e334ac50774080e30b0bf5e465 Mon Sep 17 00:00:00 2001 From: slgxmh Date: Thu, 24 Jun 2021 00:09:55 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=20python/abstract=5Ffact?= =?UTF-8?q?ory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python/creational/abstract_factor.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/python/creational/abstract_factor.py b/python/creational/abstract_factor.py index 8cae887..e582db2 100644 --- a/python/creational/abstract_factor.py +++ b/python/creational/abstract_factor.py @@ -1,9 +1,16 @@ +""" +抽象工厂模式: +抽象工厂提供了一个统一的接口,来创建一组相同功能的类。 + +这个例子设计的情景: +假设我们的系统需要加载不同数据集用于验证我们的模型,我们希望加载的数据集之间可以通过一个接口互相替换,不需要我们修改我们模型的代码。 +""" from typing import NoReturn, Type class DataSet(object): """ - 数据类的父类,抽象出这一类的最基本的要素与功能 + 数据类的父类,抽象出数据集这一类的最基本的要素与功能 属性: name: 所有的数据都有一个可读的名字,本例抽象出这一个属性做演示 @@ -77,7 +84,7 @@ class AbstractDataFactory(object): # 抽象工厂的核心思想:声明不同类型的工厂,生产出不同的类 -if __name__ == "__main__": +def main(): # 声明了一个文字类的数据集工厂 factory = AbstractDataFactory(Text) # 给这个数据集起名 NLP @@ -90,3 +97,7 @@ if __name__ == "__main__": data_set = factory.get_data_set("CV") # 查看 CV 数据集的内容 data_set.content() # Here is your data Image Image! + + +if __name__ == "__main__": + main() -- Gitee From 805e81392211a2aef089d08d78d76587fce0a06e Mon Sep 17 00:00:00 2001 From: slgxmh Date: Thu, 24 Jun 2021 14:03:40 +0800 Subject: [PATCH 2/3] change README --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index e69de29..ba5d4b9 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,14 @@ +# 写作角度 +本人增删改查程序员出身,目前从事数据科学,看到一些数据科学从业者编程技能不足,同时也是为了提升自己的编程能力,顾计划站在数据科学的角度书写此书。 +# 适合人群 +已经熟悉Python基本语法及标准库,有简单的代码经验 +# 设计模式的作用 +在制作软件的过程中,设计模式可能是新手最容易忽略的基础技能,软件(脚本)没有良好的结构,在升级演进的过程一定会浪费需要时间。相应的,如果在软件建立的过程中,拥有可维护、易拓展的良好结构,那么一定有利于后续的升级开发。 +# 写作结构 +每一种设计模式先用极简的语言介绍核心思想 +再结合数据科学的实际情况,给出简洁的Python语言的实现 +结合代码解释具体思路 +说明这种模式的应用场景 +给出应用该设计模式的实例 +# 设计模式总结 +创建型的设计模式共有5种类型:工厂方法、抽象工厂、建造者、原型、单例 \ No newline at end of file -- Gitee From 4d31fbc22727b47821e4e93ad8d54de4f834dd3b Mon Sep 17 00:00:00 2001 From: slgxmh Date: Thu, 24 Jun 2021 15:12:31 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96pyhton/abstract=5Ffactory?= =?UTF-8?q?=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python/creational/abstract_factor.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/python/creational/abstract_factor.py b/python/creational/abstract_factor.py index e582db2..8761623 100644 --- a/python/creational/abstract_factor.py +++ b/python/creational/abstract_factor.py @@ -5,7 +5,7 @@ 这个例子设计的情景: 假设我们的系统需要加载不同数据集用于验证我们的模型,我们希望加载的数据集之间可以通过一个接口互相替换,不需要我们修改我们模型的代码。 """ -from typing import NoReturn, Type +from typing import Type class DataSet(object): @@ -19,7 +19,7 @@ class DataSet(object): def __init__(self, name: str) -> None: self.name = name - def content(self) -> NoReturn: + def content(self) -> None: """数据集的内容""" raise NotImplementedError @@ -30,7 +30,7 @@ class DataSet(object): class Image(DataSet): """继承自Data父类,假设这是一组图片数据""" - def content(self) -> NoReturn: + def content(self) -> None: """ 重载 图片数据集的内容 @@ -46,7 +46,7 @@ class Image(DataSet): class Text(DataSet): """同样继承自Data父类,假设这一组文字数据集""" - def content(self) -> NoReturn: + def content(self) -> None: """ 重载 文字数据集的内容 @@ -83,8 +83,8 @@ class AbstractDataFactory(object): return data_set -# 抽象工厂的核心思想:声明不同类型的工厂,生产出不同的类 def main(): + """抽象工厂的核心思想:通过通过同样的j声明不同类型的工厂,生产出不同的类""" # 声明了一个文字类的数据集工厂 factory = AbstractDataFactory(Text) # 给这个数据集起名 NLP -- Gitee