首页 / 知识
OOP类设计,此设计是天生的“反” OOP吗?
2023-04-15 01:42:00

OOP class design, Is this design inherently 'anti' OOP?我记得当MS发布一个论坛示例应用程序时,该应用程序的设计是这样的:
/Classes/User.cs
所以classes文件夹只有类,即属性和getters / setters。
另一种更传统的方法是将Posts.cs中的所有方法也都放入类定义(Post.cs)中。
将内容拆分为2个文件可以使过程更多一些,不是吗? 如果每个方法只是直接调用数据源的静态调用,则" Posts"类实际上是一个Factory。您当然可以将" Posts"中的静态方法放入" Post"类中??(这是CSLA的工作方式),但是它们仍然是工厂方法。 我会说" Posts"类的一个更现代,更准确的名称是" PostFactory"(假设它所拥有的只是静态方法)。 我想我不一定会说这是"过程式"方法,它只是一个误导性的名称,您会认为在现代OO世界中," Posts"对象将是有状态的,并提供操作和管理一组对象的方法。"发布"对象。 好吧,这取决于在何处以及如何定义关注点分离。如果将代码填充到Post类中,则您的业务层将插入数据访问代码,反之亦然。 对我来说,在实际的域对象外部进行数据提取和填充是有意义的,并让域对象负责使用数据。 什么是anti-OOP或pro-OOP完全取决于软件的功能以及使其工作所需的条件。 对于应用程序去耦(或松散耦合),这也是重要的一步。 根据您的代码段,Posts主要是一类静态帮助器方法。 Post与Post是不同的对象。可以使用PostManager或PostHelper来代替Posts。如果您以这种方式考虑,则可能有助于您理解他们为何以这种方式爆发。 您确定这些类不是局部类。在这种情况下,它们实际上不是两个类,而是一个类分散在多个文件中以提高可读性。 |
最新内容
相关内容
linuxmv命令示例?
linuxmv命令示例?,名称,系统,文件,命令,目录,文件夹,不了,工作,管理,路径,在linux下用mv命令可以批量的移动文件吗linux下使用mv命令来移动文linux命令和应用程序?
linux命令和应用程序?,软件,系统,环境,管理,基础,情况,位置,电脑,工具,中心,在linux下如何装应用程序?需要什么命令啊首先从官网下载hdf5,根据红帽linux命令和示例?
红帽linux命令和示例?,系统,软件,密码,工作,网络,命令,中心,地址,设备,官网,红帽子Linux如何用命令创建新用户?打开xshell软件,远程访问您的服Python有哪些设计模式?
Python有哪些设计模式?,设计,策略,工厂,系统,代码,统一,培训,模式,软件,通信,设计模式大家一定很熟悉,它是一套被反复使用、多数人知晓的、经过python之当前GIL设计的缺陷
python之当前GIL设计的缺陷,时间,代码,设计,线程,培训,受益,一致,平均,状态,持有,基于pcode数量的调度方式按照Python社区的想法,操作系统本身Python是一种怎样的计算机程序设计
Python是一种怎样的计算机程序设计语言?,代码,企业,新浪,大规模,公司,工作,项目,百度,全球,培训,你可能已经听说过很多种流行编程语言,比如非Python文件操作步骤示例
Python文件操作步骤示例,异常,代码,信息,文件,设计,简介,通用,意外,中级,培训,我们来读取这样一个文本文件:song.txt,该文件的字符编码为utf-8Python可以做桌面应用程序吗
Python可以做桌面应用程序吗,平台,系统,较大,标准,培训,界面,桌面,文档,入门,开发者,python可以做桌面应用程序!目前比较主流的几个GUI平台:1python有哪些设计模式?
python有哪些设计模式?,设计,策略,工厂,系统,代码,统一,培训,模式,软件,通信,设计模式大家一定很熟悉,它是一套被反复使用、多数人知晓的、经过关于ASP.NET Web应用程序生成输出:A
关于ASP.NET Web应用程序生成输出:ASP.NET Web应用程序生成输出-如何包括所有部署文件?,关于ASP.NET Web应用程序生成输出:ASP.NET We在WPF应用程序中显示PDF
在WPF应用程序中显示PDF,在WPF应用程序中显示PDF,运行,浏览器,文件,显示,Display a PDF in WPF Application有什么想法如何在WPF Win关于python:什么是最好的Django搜索
关于python:什么是最好的Django搜索应用程序?,关于python:什么是最好的Django搜索应用程序?,选择,项目,应用程序,搜索,What's the best