自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用桥接模式让两个抽象层级能够独立的演化。

1,A是一个抽象类,它HAS-A抽象类B. A有不同的实现类,B也有不同的实现类。见下面简画的图: 使用桥接模式可以让A和B这两个抽象层级独立的变化和扩展而不会相互影响。在客户端调用时采用下面的形式比较灵活,并且功能可插拔: void main(..){ B b1=new Bimpl1(); B b2=new Bimpl2(); // A a=new Aimpl1(); a

2015-06-26 11:18:34 435

原创 实用软件开发流程

1,取得需求。 2,从需求归纳出用例列表或功能列表。 3,采用用例驱动或功能驱动进行代码片段实现(可包含类图的设计)。 用例驱动:指让一个使用流程通过(往往包含多个功能)。 功能驱动:指让一个独立的具体功能通过。 4,tdd测试让每一个用例或功能通过。 5,采用设计原则和模式增加系统的灵活性。 6,集成测试。 7,发布。

2015-06-25 15:44:57 432

原创 android 实现文字自动滚动的走马灯效果。

红色为关键代码。 1,textview设置:               android:id="@+id/tvAutoScroll"             android:layout_width="50dp"             android:layout_height="wrap_content"             android:text="1222222222

2015-06-23 17:56:14 1468

原创 面向对象就是面向生活,而模式就是解决生活中特定问题的最佳实践。

1,模式源于生活而又服务于生活。 2,面向对象编程就是面向生活编程,所以生活中的问题都有一个对应的面向对象结构。 3,为什么面向对象能解决大规模的软件设计?因为面向对象是生活中问题的一一映射。生活中出现的问题均可一一映射成对象结构。

2015-06-16 10:46:17 496

原创 利用装饰者模式通过层层封装以达到动态增强类的功能。

提示:它优于继承在编译时静态绑定的行为。 代码待续。。。

2015-06-12 14:32:42 591

原创 利用观察者模式实现data和ui的独立演化

待续。。

2015-06-11 13:57:43 452

原创 android移植ffmpeg的编译

一,ffmpeg编译(版本ffmpeg-HEAD-b2ad33d.tar) 1,安装汇编编译器[sudo apt-get install yasm]. 2,ffmpeg根目录放编译脚本build_android.sh内容如下:(备注:NDK相关路径按自己实际情况修改,若需包含编译x264和mp3的话红色部分用于指定x264和mp3的头文件和库所在目录。) #!/bin/bash N

2015-06-04 10:01:13 837 3

原创 浅谈c++复制构造函数和赋值操作符。

何时调用: 1,如果变量没有声明过,那么将会调用复制构造函数。如: A a; A a2=a;//调用复制构造函数将a复制到a2. 2,如果变量已经声明过,将会调用赋值操作符。 A a; A a2; a2=a;//调用赋值操作符将a的值复制到a2 备注:不管是复制构造函数还是赋值操作符,都要注意类成员存在指针的情况。这种情况下,如果采用浅复制那么应该使用引用计数;当然

2015-06-03 14:42:14 386

原创 c++中类型的隐式转换。

在满足下条件时,编译器才会使用隐式转换: 1,存在匹配的构造函数。 如:class A { public: A(B); }; // A  a=B; 2,存在声明的转换操作符: class B { public: operator A() const; }; // A  a=B; 备注:隐式转换有时可能造成二义性。为了阻止编译器使用隐式转换,

2015-06-03 14:24:18 401

原创 利用迭代器,适配器模式实现统一数据访问接口。

package com.iterator; public interface Iter { int next(); boolean hasNext(); } package com.iterator; public class ArrayIter implements Iter { private int[] array; private int index; pu

2015-06-01 11:28:00 494

原创 策略模式实现可拓展可插拔的功能。

package com.main; public interface Calculator { int calculate(int input); } package com.main; public class C1 implements Calculator{ @Override public int calculate(int input) { // TODO Auto

2015-06-01 11:00:27 1433

android 移植

android移植技术详解,著名开发者编写的j2me到android的移植技术

2012-08-12

空空如也

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

TA关注的人

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