
设计
文章平均质量分 55
科学的发展-只不过是读大自然写的代码
科学的发展-只不过是读大自然写的代码
展开
-
nativeAOT
nativeAOT原创 2024-07-25 19:48:11 · 1099 阅读 · 0 评论 -
耦合与内聚实验
耦合与内聚实验原创 2022-10-23 22:57:04 · 424 阅读 · 0 评论 -
c++ 单件模式解耦应用
概要单件模式,对于我来说,一直觉得是是一直控制对象数量的方法,但知道今天我才发现他对降低耦合度的作用。其实对于单件有两个明显的价值,1对象的个数少,对这个对象的成员对象的操作能够统一起来,其实对于很多功能职责的类,都是有这个要求的。我们通常用桥接的方式来解决问题,但是用单实例明显更灵活。代码// Log.h: interface for the Log class./////////////////////////////////////////////////////////////原创 2021-04-26 17:24:22 · 392 阅读 · 0 评论 -
mvc-mpv-mvvm思想实践
代码package test2;import test2.MvvmTest.Mvvm.Buider;public class Mvcs { public static void main(String[] args) { System.out.println("代码实践"); println("mvc:"); MvcTest mvc = new MvcTest(); mvc.use(); println("mvp:"); MpvTest mpv = new MpvT原创 2020-06-14 21:52:54 · 237 阅读 · 0 评论 -
flux-理解实践
1.概述整个流程如下:首先要有 action,通过定义一些 action creator 方法根据需要创建 Action 提供给 dispatcher View 层通过用户交互(比如 onClick)会触发 Action Dispatcher 会分发触发的 Action 给所有注册的 Store 的回调函数 Store 回调函数根据接收的 Action 更新自身数据之后会触发一个 change 事件通知 View 数据更改了 View 会监听这个 change 事件,拿到对应的新数据并.原创 2020-06-13 22:31:13 · 428 阅读 · 0 评论 -
stratUml-创建分支结构
1.创建一个时序图,并包含1、2两个分支2.分支画法2.1.创建分支2.2创建分隔线2.3 调整分隔线原创 2020-05-22 10:04:35 · 1821 阅读 · 0 评论 -
领域驱动设计学习笔记
1 概念1.1 一个通用领域驱动设计的架构性解决方案包含4 个概念层:表示层 负责向用户展示信息,及解释用户的命令 应用层 很薄的一层,用来协调应用的活动,他不含业务逻辑,他不保留业务对象的状态,但保留应用任务的进度状态。 领域层 本层包含关于领域的信息,这是业务软件的核心所在,在这里保留业务对象的状态,对业务对象和他们状态的持久化被委托给了基础设施层。 基础...原创 2019-07-28 09:48:57 · 185 阅读 · 0 评论 -
设计是什么
设计就是一系列的规则。一系列的规则是分层次的,由架构到代码。上层的设计要为下层的设计提供抉择的原则。没一层都可以制定自己的规则。这个规则是越来越细的。设计就是一系列的选择。选择总有利弊。选大的利,没一层的规则都应该为大利的选择,做设计,平衡小利的矛盾。一般性能总是我们最求的最高目标,但是绝对的性能往往要为设计做适当的让步。当然如果遵从设计会破坏很大的性能。那么允许出现适当的特例...原创 2019-05-15 09:50:41 · 341 阅读 · 1 评论 -
解耦,复用,冗余
解耦,复用,冗余提到设计就不能没有解耦。那么解耦的目的是什么呢,解什么耦呢,就是解专有的耦,变成通用的耦。一个机能A,和B耦合紧密,那么C也要用A的机能,那么咋办呢,把A和B解构,变成B和C的公共组件。这里提供了A的复用,解除了A和B耦合,消除了A1的冗余。说到A1可呢您要说,那来的A1啊?试想如果A和B解耦,A无发为C用,那么C得用一个A1为他提供机能支撑。A1和A一定是有机能冗余...原创 2019-04-11 11:22:32 · 1443 阅读 · 0 评论 -
从用人的角度解设计模式的原则
概念单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。里氏代换原则(Liskov Substit...原创 2019-04-08 10:59:24 · 166 阅读 · 0 评论 -
里氏代换学习
概念:里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽...原创 2019-04-08 10:12:09 · 639 阅读 · 0 评论 -
突破开闭原则
开闭原则:如何保证对修改关闭,对扩展开放呢?那么首先说,为什么会有需求的变动吧。1 需求追加。2 需求变更。举个例子把,比如我们有一个坦克,坦克有种型号。塔克的基本机能是能走能射击。坦克类{跑()射击()}70坦克{跑:70公里没小时;射程:700米;}50坦克{跑:50公里每小时;射程:500米;}现在增加90坦克。具体如下?90坦克{跑:90公里每小...原创 2019-04-08 09:24:34 · 173 阅读 · 0 评论 -
mpv简单实现
mpv代码实现(c++):#include using namespace std;#include // 抽象层class Data;class View;class Controller;class Model{public:string name;int age;virtual void setView(View* v)=0;virtual void update(...原创 2019-03-05 09:48:43 · 1137 阅读 · 0 评论 -
mvc 和 mpv 的差别
从需求的层面讲,有啥差别?任何需求都有,一个页面(v),页面要表示一定的数据(m),根据用户的请求显示不同的数据(c)。几乎任何的软件都可以按照上面的方式切割需求。所以有了mva模型。那么mpv又有啥不同的,说的简单点:就是想让m和v更纯粹。怎么个纯粹发呢?下面举例说明。mvc 是怎么个流程呢。首先用户点击某个控件(用户要看A数据)1.按钮高速控制器(v->c):你高速数据层,...原创 2019-03-04 16:48:02 · 866 阅读 · 0 评论 -
mvc模式代码举例
mvc代码实现:该篇为《mvc 和 mpv 的差别》提供理解帮助#include using namespace std;#include // 抽象层class Data;class View;class Controller;class Model{public:string name;int age;virtual void setView(View* v)=0;...原创 2019-03-05 08:56:30 · 2370 阅读 · 0 评论 -
android中MVC/MVP的解耦方法学习笔记
解耦:偏向mvcandroid中的mvc中有些人把activity认为是controler+view这种观点我并不绝对的赞成,感觉对view的理解过于狭隘了。我的理解是view的表现一定包括控件吧,那么textView是否属于view呢,应该属于吧,那么activity是textView的容器。里应该吧activity也算view。当然如果activity包含的逻辑多了,把他的其他逻辑算做...原创 2019-05-01 12:06:22 · 513 阅读 · 0 评论 -
MVC、MVP、MVVM的特点和关系
首先简单介绍一下MVC全名是Model View Controller。是模型(model)-视图(view)-控制器(controller)的缩写。模型:就是一组有关系的数据。一般是一个类。视图:表这组关系数据表示出来的容器。一般就是能显示上面数据的一组控件。控制器:就是用户响应的接口,一般相当于一个函数。他们三个完成工作的一般过程是这样的。1.客服发生一个命令,这个命令道发给控制器...原创 2019-05-01 17:02:58 · 341 阅读 · 0 评论 -
图说mvc/mvp/mvvm的关系
如下图的关键字说明pass call to:通过调用manipulates:操纵处理observer:观察者Pub/Sub:Publish/Subscribe(发布/订阅)原创 2019-05-10 15:08:26 · 185 阅读 · 0 评论 -
想想耦合和内聚
耦合:软件工程中对象之间的耦合度就是对象之间的依赖性。总结:耦合==依赖耦合有两个衡量标准1.耦合的数量,即耦合的多少。2.耦合的质量等级。耦合可以分为以下几种,它们之间的耦合度由高到低排列如下:(1) 内容耦合。当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过正常入口而转入另一个模块时,这样的耦合被称为内容耦合。内容耦合是最高程度的耦合,应该避免使用之。(2) 公共耦合...原创 2019-04-11 13:49:14 · 240 阅读 · 0 评论 -
耦合和内聚的相互作用
耦合和内聚几乎成立评审设置质量的标尺。听这个个词好多年了,甚至当我清楚的知道什么是好的设计的时候对这个概念还是很模糊的。就大概知道那么回事吧?那么到底什么时候耦合呢:有关系就算耦合吧,基本上这样理解是没错的,大部分这样理解也是没错的。那么低耦合是什么标准呢:耦合的数量少就是低耦合吧,恩对,但不绝对,但大部分基于这样的理解几乎没问题的。说大部分,是因为耦合在但耦合上也是有不同的级别区分的,...原创 2019-04-11 13:19:48 · 507 阅读 · 0 评论 -
耦合度举例分析、结合面向对象5关系分析、耦合度再分类
一 耦合度举例说明(1) 内容耦合。当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过正常入口而转入另一个模块时,这样的耦合被称为内容耦合。内容耦合是最高程度的耦合,应该避免使用之。class A{ public int data_a;}class B{...原创 2019-05-21 10:51:05 · 3911 阅读 · 0 评论 -
面向对象五关系深入分析
五种关系:一般化关系、关联关系、聚合关系、合成关系、依赖关系。一般化关系(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。关联关系(Association)是类与类之间的联接,它使一个类知道另一个类的属性和方法。可以单向和双向。聚合关系(Aggregation)关联关系的一种,是强关联关系。表示整体和个体之间的关系。合...原创 2019-04-11 14:23:12 · 1253 阅读 · 0 评论