自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

原创 真实世界的映照-DDD值对象

值对象,也是用来模拟现实世界使用。现实世界中的物事,在生命周期内有变化的事物用实体来建模,在生命周期内无变化的事物用值对象来建模。

2024-04-10 08:12:46 688

原创 真实世界的映照-DDD实体

试想一下,我们传统开发的时候,是怎么进行建模的?我相信,大多团队,都是直接在数据库里面建一张表,就完事了吧。好一点的团队,会使用PowerDesigner之类的工具构建出物理模型。实体是模拟真实的物理世界,是连接开发人员与业务人员的重要工具。DDD提倡的是用模型来模拟现实的物理世界,只有符合现实物理世界的模型才是好的模型。在DDD中,实体与值对象是领域进行建模的重要工具。

2024-04-10 08:04:11 955

原创 代码工程的隔离-DDD模块

模块也是一个显式边界,领域模型便存在于边界之内。模块比限界上下文要小,可以做作是限界上下文的子集。在Java语言中,package是模块的具体实现,package同等于模块,如com.compony.business.xxx。没有了限界上下文,DDD的战略模式是不完整的,没有了模块,DDD只是的战术模式是不完美。

2024-04-09 10:01:28 313

原创 分而治之-DDD限界上下文

限界上下文是一个显式边界,领域模型便存在于边界之内。在边界内,通用语言中的所有术语和词组都有特定的含义,而模型需要准确地反映通用语言。其实,从本质上来看,限界上下文是一个领域。

2024-04-09 09:58:38 394

原创 一切皆是为了交流-DDD通用语言

通用语言是一种在特定领域内的沟通方式,可以由文字、语言、手势、图像等一切与达到沟通目的的元素组成。在一个团队中,构建出属于自己的通用语言是非常有必要的,好的通用语言,能让团队具备极高的沟通效率!通用语言,不是天然就存在的,而是在发展的过程中,不断地完善。在践行DDD的时候,通用语言特别重要,因为它是连通管理、业务、技术的重要工具。通用语言的目的是为了交流,凡是有利于交流的方式,都可以称之为通用语言。

2024-04-08 08:12:49 677

原创 有限的边界-DDD领域

领域是充满着业务知识在里面,因此,首先需要把熟悉业务的人员(领域专家)融入到团队中,让领域专家充分参与到解软件开发,在领域专家的带领下,才能把领域模型构建起来。

2024-04-08 08:09:28 296

原创 一叶而天下知秋,带你走进DDD的概念术语

每一门方法论,都会有它的专门术语,而DDD同样也不例外。古人说,一叶而天下知秋,透过DDD的术语,我们可以初步明白,DDD到底是什么。任何方法论,都可以分成战略与战术两部分,战略是思想指导,战术是具体做法。举个例子,目标是成为一名架构师,那么,看多书、多实践便是成为架构师的战略,而看什么书、哪个时间段看书、要去实践哪些内容,这些,便是战术。

2024-04-07 09:37:56 492

原创 一文带你初识DDD领域驱动设计

然而,领域驱动设计,是什么?很多书籍,很多博客,都没有对领域驱动设计下一个标准的定义。就连《实现领域驱动设计》这一本书,也没有对领域驱动设计下了标准化的定义,而是反复描述DDD能解决些什么、应该怎么样做才是DDD。因为,DDD是一种方法论,是一种指导思想,从不同的视角去看DDD结果是不一样的,因此,不适合对DDD做标准化定义,也无法对DDD做标准化定义。如果你执着于给DDD下一个定义,那么,就是陷入到思维的囚笼中无法逃脱。

2024-04-07 09:26:03 791

原创 Java在什么情况下需要重写hashCode方法

什么时候需要重写hashCode方法

2022-09-12 17:15:55 1662 2

原创 tk.mybatis基类MyMapper的坑

1、insertList方法我在一个项目中,使用了insertList方法想把List集合中的数据保存入库,因为不想写foreach之类的循环语句。但是,程序一直报SQL语句错误,数据一直保存失败。经过各种各样的尝试排查,最后定位到是insertList的本身bug。insertList在使用的时候,会报主键值为空的SQL错误。最好不要使用insertList,使用insert比较稳当...

2020-05-12 15:03:43 797

原创 基于业务分离的Android开发框架MVB,MVC思想的android实现

传统的安卓开发传统的安卓开发,对于同一个界面上的功能,往往都是把功能的实现代码写到同一个Activity类中,这样子,各种各样的业务功能实现代码充斥在同一个Java类中,一个Activity的代码量往往会达到几百行,甚至几千行!传统的Android开发存在四个问题1、耦合度高不同的功能业务代码都集中到同一个Activity类中,就像一堆石头都放在同一个盒子中一样,就必定会造成石头与石头挨在...

2020-05-04 16:56:13 2032

原创 浅淡开发工具、开发框架与开发模式

什么是工具?什么是框架?什么是模式?     在软件开发中,Gson、rxjava、Glide、OKHttp、MVP、MVC、Spring、Hibernate、Structs2、Vue、Angular等,这些词组经常出现在各种各样的技术论坛、技术博客上,在这些词组中,有开发工具、有开发框架,也有设计模式。对于RXJava,有人说这是一个开发工...

2020-05-03 22:14:00 980

原创 解决浏览器出现的【已拦截跨源请求:同源策略禁止读取】问题

问题产生:已拦截跨源请求:同源策略禁止读取 在网页与接口不处于同一个服务器的前提下(前端代码放在A服务器,接口牌B服务器),ajax请求接口的时候,浏览器会为了安全问题,在接口返回数据的时候,对响应头进行检验。如果响应头中没有Access-Control-Allow-Origin:*和Access-Control-Allow-Headers:Origin, X-Requested-With

2018-02-06 22:34:09 64942 1

原创 JDK动态代理

JDK动态代理用处以下一段代码,需要加入权限验证和日志记录public AirticleService{ public List<Airticle> getAirticleList(){...} public Airticle getAirticle(String rtid){...} public String deleteAirticle(String rtid){..

2018-01-09 13:45:12 324

原创 自定义滚的CustomScrollView

1、常见的滚动视图控件Android中常用的滚动控件有ScrollView、ListView、GridView、ExpandListView等。2、视图滚动原理在android中,视图模式是层叠卡片式的,但又和现实中的层叠卡片有些区别。例如,把屏幕当然一张卡片,每一个view控件都是直接或者是间接地层叠在屏幕之上的,如下面这张图。 screen处于卡片的底部,container叠在screen

2017-11-21 15:05:25 4755

原创 控制Dialog的窗口大小(自定义Dialog视图)

LayoutInflater的坑LayoutInflater加载布局的时候,会将XML文件中的根View控件大小等属性去除,从而造成在根View中设置视图在大小无效。而Dialog中的父容器默认大小是自动的,其大小于子View大小决定,所以,LayoutInflater加载XML生成的View在Dialog中显示的效果很多是很不理想的。 例子:<?xml version="1.0" encodin

2017-02-19 22:51:07 1906

原创 快速掌握NDK使用方法

Java Native Interface,简称JNI,顾名思义,就是Java本地接口服务。 JNI是Java与底层C/C++交互的桥梁,若是没有JNI,则Java程序无法运行,这不是危言耸听,而是事实。Object是Java的所有类的父类,一切的Java都继续于Object,观看Object的源码就知道了,Object里面有不少native方法。 Android端的NDK开发本质上就是Java

2017-02-19 21:35:52 360

原创 两个线程之间的同步(生产者与消费者问题)性能优化

计算机中很经典的生产者与消费者的问题,生产者要等到产品消耗完之后才能进行生产,消费者都要等到产品生产完成之后才能消费,也就是说,生产者要等到消费者消费完产品之后才能进行生产,消费者要等到生产者生产完产品之后才能进行消费。 生产者与消费者之间的关系: 生产者>>判断产品是否为空>>空>>生产产品 生产者>>判断产品是否为空>>不空>>不生产产品 消费者>>判断产品是否为空>>空>>不消费产产品

2016-12-17 23:05:52 530

原创 安卓CVB模式

传统的软件设计MVC模型在WEB开发中很流行,也很合适,因为Servlet的灵活性,使用Servlet中与UI、业务相关的代码可以完全分离。WEB项目中,Servlet充当了Controller的角色,HTML、JSP等视图技术充当了View的角色,JavaBean、DAO等充当于Modle的角色。 虽然MVC模式在WEB端大红大紫,但是,在安卓开发中,MVC并不实用,安卓开发若是强行使用MVC的

2016-12-10 14:58:28 684

原创 百度地图DEMO的KEY问题

因为百度地图API的使用是和KEY绑定的,也就是说,每一个应用程序,都会有一个唯一的KEY与之对应,如果KEY值不对,百度地图API就无法生效。 下载后的百度地图官方DEMO,默认是不带KEY值的,开发者需要配置KEY才能将DEMO成功运行。 下面是获取DEMO正确KEY值的方法 1、进入KEY申请页面,注意,包名一定是DEMO的包名 2、进入应用管理界面,就可以查看到刚才申请的KEY值

2016-11-18 10:33:51 2986

原创 ListView自定义适配器

话不多说,直接上代码,代码上面注解很详细 适配器类package com.example.demotest;import java.util.List;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;

2016-11-15 13:37:02 300

原创 ScrollView和HorizontalScrollView中添加的自定义View控件无法显示问题

一般自定义View控件,都要重写onMeasure(int widthMeasureSpec, int heightMeasureSpec)和onDraw(Canvas canvas)两个方法,其中onMeasure方法的作用是计算控件的大小,onDraw方法的作用是显示控件的内容。 因为onDraw方法网上都有很多教程,所以本文不讲。本文重点讲解的是onMeasure这个实用性很强,但又容易出现

2016-11-12 18:21:06 2663

原创 在Activity中开启新线程注意问题

很多人认为,在Activity中new出来的线程,会在Activity销毁的时候线程同时被销毁,事实上,这是一个错误的观点。 Activity new出来的新线程是运行在另非主线程上的,Activity销毁的本质是执行了onDestroy()这个生命周期方法,工作线程不会受到Activity销毁的影响。 当Activity启动的新线程执行的是一个死循环操作的时候,新线程会一直运行着,即使是Act

2016-11-12 17:54:34 3836

原创 Java生成和读取Excle文件之JXL框架辅助工具

在程序项目开发中,无论是Android还是Java,在很多地方都会使用到Excle表格作为数据的存储方式,这就避免不了程序对Excle文件的操作。 问题:目前,无论是JXL还是POI,对Excel的操作都是比较原始的,用户无法使用这些框架代码直接读取Excle并相应相应的数据实体(Entity),也无法直接将数据实体写入到Excle文件中去。 本文章要介绍的是一个对JXL框架进行封装,实现读取E

2016-11-08 22:27:52 649

原创 map和list使用过程中注意集合中空数据引发的空指针

一、MAP MAP存放数据方式是

2016-11-08 21:27:43 1049

安卓CVB模式DEMO

在Android开发中,View主要是由资源文件(如layout、values、drawable等)和View的子类构成,而这些View又主要由Activity来控制显示,由此,Activity就是View的Controller(控制器),因为与View相关的操作都在Activity中完成,所以Activity与View之间就紧密相联,这样Activity与View之间的耦合度就非常的高,往往使得一个Activity中充满了上千行与View相关操作的代码。 在Android开发中,业务层的代码,往往都会与Activity打交道,因为业务代码要与View打交道。这样,在Activity中同时也充满了很多与业务相关的代码,就使得一个Activity中的代码数量更多庞大了。 因此在安卓传统开发中,一个Activity往往都容易达到上千行代码,维护起来也相当困难。 本文要讲解的一个安卓端开发模式,虽然功能和火热的MVP模式相同,但是,设计理念也相同,但是,实现方式并不一样,专注点也不一样。本文讲解的开发模式,专注与将UI与业务相关的代码从Activity中抽离出来,使得Activity中代码量极速减少,同时,将业务分离的更加具体,使得Activity专注于Controller的工作,View专注于做View的工作,业务专注于业务处理,我称之MVB模式(Controller、View、Business)。

2016-12-10

Java读写Excel文件,JXL框架工具类

在程序项目开发中,无论是Android还是Java,在很多地方都会使用到Excle表格作为数据的存储方式,这就避免不了程序对Excle文件的操作。 问题:目前,无论是JXL还是POI,对Excel的操作都是比较原始的,用户无法使用这些框架代码直接读取Excle并相应相应的数据实体(Entity),也无法直接将数据实体写入到Excle文件中去。 本文章要介绍的是一个对JXL框架进行封装,实现读取Excle文件数据并生成相应的Entity对象,实现直接将Entity数据写入到Excellent文件中。 JXLUtil框架功能 1、读取Excle数据,生成相应的Entity 2、将Entity数据直接写入到Excle文件中 注意:Entity支持日期属性、支持继承、支持包含其他Entity

2016-11-08

空空如也

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

TA关注的人

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