![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件设计
疯流人物
我是一个爱代码疯狂,为软件消得人憔悴的疯流人物
展开
-
程序设计相关原则总结
迪米特法则(Law of Demeter)又叫作最少知识原则(The Least Knowledge Principle),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。英文简写为: LOD。1、单一职责原则(SRP)3、S.O.L.I.D原则。2、开闭原则(OCP)原创 2022-11-22 10:17:50 · 104 阅读 · 0 评论 -
Java软件开发三层架构示例
实现的功能很简单,就是的打印一句文字。可其体现出模块化设计与便于维护,使用接口降低了耦合,使用工厂与反射适应变化。每个类专注自己的操作, 表现层,业务逻辑层,数据访问层, 各司其职。比如有另一种数据获取方式,那么将获取的发式实现加于程序后调整配置即可,同样的若用另外的业务操作方式,也只需将实现操作的方式调整配置即可。定义了一个Dao接口,实现了一个SampleDao类。定义了一个Biz接口,实现了一个SampleBiz类。定义了一个Config配置类。定义了一个Factory类。定义了一个View类。转载 2022-11-04 10:04:55 · 259 阅读 · 0 评论 -
utils层与tools层,manager层与service层,helper层概念理解
service层:业务处理层,在大系统中,该层比较复杂,故可抽取出通用处理层(manager层),并且一个service层可以对应多个manager层,但小系统的话,往往没必要抽取出manager层,一个service层足够了。manager层:通用业务处理层,它有如下特征,对第三方平台封装的层,预处理返回结果及转化异常信息;对 Service 层通用能力的下沉,如缓存方案、中间件通用处理;utils层:工具类层,通用的、与业务无关的,可以独立出来,可供其他项目使用;1、utils层与tools层。转载 2022-11-03 14:04:14 · 2817 阅读 · 0 评论 -
软件开发参考网站地址
https://qcsdn.com/article/253613.html原创 2021-07-03 16:47:47 · 124 阅读 · 0 评论 -
分页查询小结
当要显示数据量足够大的时候,我们往往采用分页显示的处理办法。分页有真分页和假分页真分页:真分页:也叫物理分页,每次跳转下一页都要,在后台对数据库进行操作确定要显示的数量和内容,然后每次都去数据库取出该少量数据,优点是数据量小,缺点是访问数据库频繁假分页:假分页:也叫逻辑分页,是一次性将数据拿到前端,在前端进行分页。从数据库中取出所有的数据,然后分页在界面上显示。访问一次数据库,但由于选择的数据量比较大,所以第一次花费时间比较长,但之后每一页的显示都是直接、快速的,避免对数据.转载 2021-07-03 16:22:43 · 128 阅读 · 0 评论 -
软件架构思想摘录
软件架构思想摘录1、原创 2021-03-24 14:24:51 · 118 阅读 · 0 评论 -
Enterprise Architect学习笔记
Enterprise Architect学习笔记原创 2021-03-17 16:43:20 · 226 阅读 · 0 评论 -
《GOF设计模式》—抽象工厂(Abstract Factory)—Delphi源码示例:基于抽象工厂的迷宫
分类: Delphi 设计模式 2012-10-25 11:13 317人阅读 评论(0)收藏 举报[delphi] view plaincopyprint?示例:基于抽象工厂的迷宫 实现: 如果TMaze.Create是传递一个对象当作参数来建立rooms、walls及doors;如此你可以以不同的参数来改变rooms、wal转载 2014-08-03 17:48:13 · 733 阅读 · 0 评论 -
《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:适配器接口
示例:适配器接口说明:(1)、定义将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。(2)、结构对象匹配器依赖于对象组合,如下图所示。目标Target:定义Client使用的与特定领域相关的接口。适配器Adapter:对Adaptee的接口与Target接口进行适配。被适配者Ada转载 2014-08-03 21:45:13 · 595 阅读 · 0 评论 -
《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:可插入的Adapter(使用抽象操作)
示例:可插入的Adapter(使用抽象操作)说明:当其他的类(如A)使用一个类(如C)时,如果所需的假定条件越少,这个类(如C)就更具可复用性。如果将接口匹配构建为一个类(如B),就不需要假定对其他的类可见的是一个相同的接口(如C接口)。也就是说,接口匹配使得我们可以将自己的类(如C)加入到一些现有的系统中去,而这些系统对这个类(如C)的接口可能会有所不同。A =〉 C转载 2014-08-03 21:51:20 · 677 阅读 · 0 评论 -
《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:可插入的Adapter(使用代理对象)
示例:可插入的Adapter(使用代理对象)实现:b)、使用代理对象在这种方法中,TreeDisplay将访问树结构的请求转发到代理对象。TreeDisplay的客户进行一些选择,并将这些选择提供给代理对象,这样客户就可以对适配加以控制,如下图所示。例如,有一个DirectoryBrowser,它像前面一样使用TreeDisplay。DirectoryBrowser转载 2014-08-03 21:53:01 · 701 阅读 · 0 评论 -
《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:可插入的Adapter(参数化的适配器)
示例:可插入的Adapter(参数化的适配器)实现:c)、参数化的适配器用一个或多个模块对适配器进行参数化。模块构造支持无子类化的适配。一个模块可以匹配一个请求,并且适配器可以为每个请求存储一个模块。在本例中意味着,TreeDisplay存储的一个模块用来将一个节点转化成为一个GraphicNode,另外一个模块用来存取一个节点的子节点。 例如,当对一个目录层次转载 2014-08-03 21:54:16 · 554 阅读 · 0 评论 -
《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:使用双向适配器提供透明操作
示例:使用双向适配器提供透明操作说明:使用适配器的一个潜在问题是,它们不对所有的客户都透明。被适配的对象不再兼容Adaptee的接口,因此并不是所有Adaptee对象可以被使用的方它都可以被使用。双向适配器提供了这样的透明性。在两个不同的客户需要用不同的方式查看同一个对象时,双向适配器尤其有用。实现:考虑一个双向适配器,它将图形编辑框架Unidraw与约束求解工具箱QOCA转载 2014-08-03 21:55:39 · 677 阅读 · 0 评论 -
《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:绘图编辑器
示例:绘图编辑器说明:有时,为复用而设计的工具箱类不能够被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配。例如,有一个绘图编辑器,这个编辑器允许用户绘制和排列基本图元(线、多边型和正文等)、生成图片和图表。这个绘图编辑器的关键抽象是图形对象。图形对象有一个可编辑的形状,并可以绘制自身。图形对象的接口由一个称为Shape的抽象类定义。绘图编辑器为每一种图形对象定转载 2014-08-03 21:49:26 · 745 阅读 · 0 评论 -
《GOF设计模式》—组合(COMPOSITE)—Delphi源码示例:组合接口
示例:组合接口说明:(1)、定义将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。(2)、结构 组合:Component:为组合中的对象声明接口。在适当的情况下,实现所有类共有接口的缺省行为。声明一个接口用于访问和管理Component的子组件。在递归结构中定义一个接口,用于访问一个父部件转载 2014-08-03 22:06:09 · 749 阅读 · 0 评论 -
C#简单三层架构
三层架构是哪三层界面层(User Interface layer)业务逻辑层(Business Logic Layer)数据访问层(Data access layer)如何搭建三层架构步骤1:文件---新建---项目---Windows窗体应用程序名称:UIL解决方案名称:Demo3Tier选中解决方案名称:Demo3Tier添加---新建项目---类库名...转载 2019-09-17 09:58:04 · 1075 阅读 · 0 评论 -
原型模式(Prototype)
复制功能应该说是一个软件系统非常常见的功能,有人曾经说过“聪明的程序员,是偷窃别人思想的程序员”,我不知道我算不算聪明的程序员,但是我确实很喜欢将别人写过的我需要的功能代码复制到我的项目中去。 同样的,在面向对象程序开发中,复制同样是有非常有意义的。很多时候构造一个对象会很复杂,需要设定n多的参数,并且调用很多方法。如果这个对象需要很多实例,那么重复的进行复杂的创建过程就非常容易出转载 2014-08-03 17:45:24 · 579 阅读 · 0 评论 -
《GOF设计模式》—组合(COMPOSITE)—Delphi源码示例:绘图编辑器
示例:绘图编辑器说明:代码:unit uGraphic; interface uses Windows,SysUtils,Classes,Graphics,Types; type TGraphic = class protected FCanvas: TCanvas;转载 2014-08-03 22:07:22 · 878 阅读 · 0 评论 -
面向对象分析过程案例实战
这是我在csdn博客的第2篇技术文章,本来按原计划是要介绍开源ajax框架buffalo的第2部分,即js的序列化,这里面涉及不少设计模式的运用和JAVA SE知识,代码精简,比较精彩。但是由于个人时间有限,在抉择之后,打算先写一篇关于面向对象分析的文章,也算是对自己过去1年多在这方面学习的总结。我选了比较简单且大家也比较熟悉的案例来分析,案例虽然简单,但是基本的分析方法和推导过程还是一致的,转载 2014-04-22 11:20:03 · 4048 阅读 · 0 评论 -
本人对于“用例”的一些理解和总结
不知道大家有没和我类似的感觉,就是在做开发的时候,经常看到需求文档里的用例2字,或者听到关于用例的谈话,或者测试用例之类的,一般的感觉就是用例就是一个需求功能点,也没去太在意,这里我想自己做个对于用例的总结。 我不想过于刻板的去讨论用例的概念,这里先从一个例子入手,比如我问你:请在30秒内说出尽可能多的筷子,勺子和盘子的相同点与不同点。 不知道大家是否有种感觉,就转载 2014-04-22 14:53:03 · 659 阅读 · 0 评论 -
谈谈singelton单例模式
单例模式是一种常用设计模式。该类只有一个实例,而且该类自行创建实例。 很多时候,服务器都只需要一个全局对象,这样方便协调系统的整体行为。比如系统的配置文件,系统只需要一个单例对象读取加载,其他对象只需要通过该单例对象获取配置信息。这样方便在复杂模式下对系统配置的管理。 java中常用单例模式:[java] view pl原创 2014-08-03 17:40:37 · 615 阅读 · 0 评论 -
《GOF设计模式》—桥接(BRIDGE)—Delphi源码示例:仅有一个Implementor
示例:仅有一个Implementor说明:在仅有一个实现的时候,没有必要创建一个抽象的Implementor类。这是Bridge模式的退化情况;在Abstraction与Implementor之间有一种一对一的关系。尽管如此,当你希望改变一个类的实现不会影响已有的客户程序时,模式的分离机制还是非常有用的—也就是说,不必重新编译它们,仅需重新连接即可(例如,Abstraction在主转载 2014-08-03 22:00:48 · 623 阅读 · 0 评论 -
《GOF设计模式》—桥接(BRIDGE)—Delphi源码示例:创建正确的Implementor对象(缺省的实现)
示例:创建正确的Implementor对象(缺省的实现)说明:创建正确Implementor对象的另外一种方法是首先选择一个缺省的实现,然后根据需要改变这个实现。例如,如果一个collection的大小超出了一定的阈值时,它将会切换它的实现,使之更适用于表目较多的collection。 代码: unit uBridge3; interface u转载 2014-08-03 22:03:15 · 715 阅读 · 0 评论 -
《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:基于工厂方法的迷宫
示例:基于工厂方法的迷宫 实现:. 函数CreateMaze建造并返回一个迷宫。这个函数存在的一个问题是它对迷宫、房间、门和墙壁的类进行了硬编码。我们将引入工厂方法以使子类可以选择这些构件。 首先,我们将在MazeGame中定义工厂方法以创建迷宫、房间、墙壁和门对象;每一个工厂方法返回一个给定类型的迷宫构件。MazeGame提供一些缺省的实现,它们返回最简单的迷宫、房间、墙壁和门。 不同的转载 2014-08-03 17:53:36 · 584 阅读 · 0 评论 -
《GOF设计模式》—桥接(BRIDGE)—Delphi源码示例:桥接接口
示例:桥接接口说明:(1)、定义将抽象部分与它的实现部分分离,使它们都可以独立地变化。(2)、结构抽象类:Abstraction:定义抽象类的接口。维护一个指向Implementor类型对象的指针。RefinedAbstraction:扩充由Abstraction定义的接口。实现类:Implementor:定义实现类的接口,该接口不一定要与Abs转载 2014-08-03 21:58:04 · 661 阅读 · 0 评论 -
《GOF设计模式》—桥接(BRIDGE)—Delphi源码示例:可移植的用户界面
示例:可移植的用户界面说明: 代码: unit uWindow; interface usesWindows,SysUtils,Classes,Graphics; type TWindow = class; TWindowImp = class; {窗口视图} TView = clas转载 2014-08-03 21:57:14 · 673 阅读 · 0 评论 -
《GOF设计模式》—桥接(BRIDGE)—Delphi源码示例:创建正确的Implementor对象(参数)
示例:创建正确的Implementor对象(参数)说明:如果Abstraction知道所有的ConcreteImplementor类,它就可以在它的构造器中对其中的一个类进行实例化,它可以通过传递给构造器的参数确定实例化哪一个类。例如,如果一个collection类支持多重实现,就可以根据collection的大小决定实例化哪一个类。链表的实现可以用于较小的collection转载 2014-08-03 21:59:46 · 662 阅读 · 0 评论 -
《GOF设计模式》—桥接(BRIDGE)—Delphi源码示例:共享Implementor对象
示例:共享Implementor对象说明:Coplien阐明了如何用C++中常用的Handle/Body方法在多个对象间共享一些实现。其中Body有一个对象引用计数器,Handle对它进行增减操作。 代码:unit uHandle; interface uses Dialogs; type TBody = cl转载 2014-08-03 22:02:16 · 707 阅读 · 0 评论