面向对象设计原则与设计模式
文章平均质量分 63
此专栏会系统的描述面向对象语言的程序设计需要遵循哪些原则,以及这些原则的来源。以及从这些设计原则里面衍生出来的设计模式。
marketandtechnology
闽南老农qq:994955138
展开
-
单例模式的性能与线程安全详解(为什么要双重检查锁)
双重判空的意义在于,mInstance是静态变量,是线程不安全的。那么我们通过同步锁synchronized来锁定改类。如果不加第一个判空,那么每次调用getInstance()都会调一下同步锁,那么开销是很大的。如果加了第一个判空,那么大概率是只会调用一次同步锁。原创 2023-04-27 18:04:39 · 835 阅读 · 0 评论 -
Android编程思想,面向对象程序设计第六篇——封装(下)功能模块化,MVC分离
上一节讲到了布局模块化,在实际开发中还有一个非常重要的是功能模块化。特别是团队开发的情况下,如果你没有进行模块化处理而是直接把某个功能的实现写在Activity里面的话,时间长了发现很多都是重复性开发。明明一个人写就可以的东西,却出现了很多同样的功能,你在你的Activity写你的,他在他的Activity写他的,浪费了大把时间。而且一旦这个功能点需要修改的时候,需要同时修改非常多的逻辑代原创 2016-12-13 15:41:01 · 782 阅读 · 0 评论 -
Android编程思想,面向对象程序设计第六篇——封装(上)布局模块化
上一节我们讲了继承,这一节我们开始讲封装。为什么要封装呢?封装是对代码信息和功能的归类,以方便于查找、调用、修改、拓展、代码复用,提高可读性。没有经过封装的代码往往需要一句一句的看才知道是什么意思,使用和拓展起来很费劲而且基本很难复用。下面我们就用一个布局封装的列子来感受一下:比如说这个红色方框内的布局 xmlns:app="http://schemas.androi原创 2016-12-13 13:46:44 · 2236 阅读 · 0 评论 -
Android编程思想,面向对象程序设计第五篇——继承(下)业务逻辑抽象化
上一节讲到继承举了Activity的列子,说明了使用继承在父类做一些共有的操作的好处。这一节我们将以RecyclerView的Adapter为列子,讲一下使用继承,把业务逻辑抽象出来,放在父类的好处。我们直接看例子:T是泛型,使用泛型来表示我们列表的数据类型public abstract class BaseRecyclerViewAdapter extends RecyclerView.原创 2016-12-13 10:59:17 · 695 阅读 · 0 评论 -
Android编程思想,面向对象程序设计第四篇——继承(上)重复代码放在基类
上一节讲到设计模式的观察者模式,实际上面向对象的设计模式有24种。但是我们不会一一的去讲,我们只挑在实际开发中使用频率高的而且必须要会使用的拿出来讲。如果要继续深入了解更多的同学可以另外去学习。这一节我们开始讲继承。 为什么继承那么重要呢?比如一个Activity,如果你在创建一个具体的XXActivity的时候只是继承了Activity,那么当需求发生变化的时候(比如要添加友盟统计代码),原创 2016-12-13 10:26:53 · 1167 阅读 · 4 评论 -
Android编程思想,面向对象程序设计第三篇——观察者模式
上一节我们讲到了单例模式,其实上一节的代码例子也用到了观察者模式。也就是用户信息发生变化的时候通知所有注册了用户信息监听接口的人。观察者模式就是这么一个角色,他管理者一类信息,并随时注意着这些信息的变化,一有变化就通知关注了这个观察者的人。还是上次讲的那个单例模式那个例子/** * 用户登录信息管理模块 * @author LZC */public class UserM原创 2016-12-13 08:54:50 · 694 阅读 · 0 评论 -
Android编程思想,面向对象程序设计第二篇——单例模式
上一节讲了面向对象程序设计的6个原则,这一节我们开始讲设计模式中的单例模式。单例模式顾名思义就是一个实例,就是从头到尾就只会同时存在一个实例。从第一次调用这个类的初始化方法而诞生到整个Application终止而结束。 单利模式适用于一个管理者的角色,比如下载任务管理,用户信息管理。他在第一次调用时创建,然后伴随整个应用的生命周期,类中的成员变量和成员方法就可以提供调用。如以下用户信原创 2016-12-12 17:49:36 · 1252 阅读 · 0 评论 -
Android编程思想,面向对象程序设计第一篇——设计模式6个原则
做了几年的安卓,发现很多安卓从业者并不是计算机科班出身,很多都是转业或者在培训机构培训之后成为了一名安卓开发者。在接触了一些同行之后,发现比较多的初级开发者只对安卓API有一定的了解。但是对于整个项目的程序设计并不是清楚,导致出现项目代码混乱,代码可扩展性、可维护性、可读性都比较差。 怎么解决这些问题呢?这就需要由一定的代码设计思想和一定的开发经验。学习一定的程序设计思想对开发的效率和质原创 2016-12-12 17:04:58 · 3421 阅读 · 0 评论