上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 70 下一页
摘要: 概要什么是所谓的替换原则?开发中我们通常会通过继承实现一些子类来达到功能的扩展,比如假设我们有基类B,有个B类型的指针或引用作为某个函数的参数,这时我们创建了子类C继承于B,如果当把指向C类对象的指针作为参数传递时,出现了一些意料之外的异常时,它就违反了LSP。说的有点抽象,到实例再具体说明。目的子类类型完全能替换基类类型而不会发生异常实例与效果举个LSP经典的例子来说明下吧。比如我们有个Rectangle,可以设定长和宽,同时可以计算它的面积,我们还有正方形的需求,所以我们创建一个Square类,继承于Rectangle。具体实现如下:class Rectangle { public: .. 阅读全文
posted @ 2012-03-31 16:53 MXi4oyu 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 概要何谓开放关闭,其实就是对扩展是开放的,对修改是关闭的。前半句好理解,后半句什么意思?进一步说明,就是扩展的同时对固有既定模块是不需要再修改的,如果还要问什么是固有既定模块,抱歉,文字还真不好解释,到后面穿插实例再来说明吧。目的对扩展开发,对修改关闭实例与效果先看个例子,比如我们需要一个封装访问MySql数据库的类。定义一些数据库操作API供外部调用,代码和类图如下所示:class Database { public: void connect(); void execute(); void commit(); void rollback(); };然后你兴致勃勃地开... 阅读全文
posted @ 2012-03-31 08:41 MXi4oyu 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 概要所谓单一职责,一个类或接口应该只负责一种职责,当某个类或接口会因为两种职责的变更而引起变化时,我们就需要分割职责。目的一个类或接口应该只会因一种职责而发生改变实例与效果先看个例子吧。假设我们需要一个消息的接口类,可以设定发信者和消息内容,很容易我们会设计成这样一个接口以及实现的类,class IMessage { public: virtual void SetSenderType(string sender) = 0; virtual void SetMsgContent(string msg) = 0; }; class Message :public IMessa... 阅读全文
posted @ 2012-03-30 16:01 MXi4oyu 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 关于出发点从开始接触设计模式到现在也有4年多了,大小著作,文章也翻了很多,心得体会的记录却半点没留下。说到心得,不是吹,还真有些,脑袋里实在憋多了难受,忍不住拿出来晒晒吧。当然,这个方向可参考资料也确实太多了,我这点花花肠子也翻不出啥新花样了,所以大家大可不必当学习资料来看,相反,以评判,讨论的心态来看更合适些。另外,近期也确实想不到有什么其他可写的,这个系列应该可以用来打发下时间。关于内容既然是设计模式,n种设计模式肯定是会写的,而且不会光局限于GOF(四人帮)书里面的那23种。至于哪种先写哪种后写,还没决定,哪个先从我脑子里溢出的就先写哪个吧。另外,几种面向对象设计原则(oo princi 阅读全文
posted @ 2012-03-30 15:58 MXi4oyu 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 效果图:MainActivity.javapackage tianshuai.homePage; import android.app.TabActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.widget.RelativeLayout; import android.widget.TabHost; import android.widget.TabHost.TabSpec; import android.widget.TextView; public class Ma.. 阅读全文
posted @ 2012-03-29 13:56 MXi4oyu 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 一,创建三个Activity类MainActiviey.javapackage tianshuai.home_page; import android.app.Activity; import android.app.ActivityGroup; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.TabHost; import android.widget.TabHost.TabSpec; public class MainActi.. 阅读全文
posted @ 2012-03-29 00:05 MXi4oyu 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 一,友元 1)可以将类作为友元,友元类的所有方法都可以访问原始类的私有成员和保护成员。 2)下面例子介绍了 电视类和遥控器类,其中遥控器类为电视类的友元类 3)注意:友元关系不具对称性。即 A 是 B 的友元,但 B 不一定是 A 的友元。 友元关系不具传递性。即 B 是 A 的友元,C 是 B 的友元,但是 C 不一定是 A 的友元。#include <iostream> using namespace std; class TV { private: int state;// on or off int volume; //assumed to be digitized ... 阅读全文
posted @ 2012-03-27 19:57 MXi4oyu 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 他年收入100多万开着一辆宝马5,天天被应酬折腾的要死要活,真想狠狠心不干了,当初干嘛非要自己创业,当年在那家外企也能挣个四五十万,加上些油水,能弄个大几十万,比自己干不知道要轻快多少!五险一金有公司给上着,多好啊,再看看现在,看看老婆孩子,还有跟着自己吃饭的好几十人,哪能说放手就放手,硬着头皮接着干吧,这不,一个猿类又给他打电话了,不知道又要干啥,唉。。。。。。。。。。。他年收入50多万开 着一辆a4l,天天琢磨着什么时候能换一辆q7或者陆巡什么的,可是看看手里还有两套房子的贷款没又还完,咬咬牙还是算了吧,今年的指标刚下来,麻痹的又 涨了40%,这tmd还叫人活吗?这指标这么涨下去,早晚有一 阅读全文
posted @ 2012-03-27 18:44 MXi4oyu 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 在JNI中,当我们使用GetFieldID/GetStaticFieldID或GetMethodID/GetStaticMethodID及定义JNINativeMethod等时,我们需要表示成员变量的类型,或函数传入参数或返回的类型。JNI把Field的类型,或函数传入参数或返回值的类型进行简写以char*的形式进行表示。 对于成员变量,直接用java类型的简写表示成员变量的类型就可以 比如:"I"表示该成员变量是Int类型 "Ljava/lang/String;"表示该成员变量是String类型 示例1: jfieldID str = (env)-&g 阅读全文
posted @ 2012-03-26 21:02 MXi4oyu 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 序:C++的一个主要目标是促进代码重用,其中包含公有继承、包含、使用私有或保护继承一,包含对象成员的类 1)valarray类简介 #include <valarray> 作用:处理数值,支持数值中所有元素的值相加,找最大值,最小值 用法:vallarray <int> a; //数组 a size=0 vallarray <double> b(10); //数组 b size=10 vallarray <double> c(10,8); //数组 c size=8 每个元素设置为 10 i... 阅读全文
posted @ 2012-03-26 20:57 MXi4oyu 阅读(223) 评论(0) 推荐(0) 编辑
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 70 下一页