OOP基础。OOP有三大目标,重用性、灵活性和扩展性。OOP有三大特性,封装、继承和多态。抽象尽管不是OOP的编程特性,但它却是全部编程语言的最大特性。封装,隐藏程序的属性和的实现细节,并控制属性的訪问权限,对外仅提供接口。继承,是对基类的代码进行利用并扩展基类,是一个从一般到特殊的过程。多态,执行...
分类:
其他好文 时间:
2014-07-03 10:48:06
阅读次数:
284
抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 AbstractProductA和AbstractProductB是两个抽象产品,之所以抽象,是因为他们都有可能有两种不同的实现,而ProductA1、ProductA2和Pro....
分类:
其他好文 时间:
2014-07-03 00:13:21
阅读次数:
220
因为在上篇文章已经介绍过何为三层,在这就不在介绍,这篇文章的主要内容是介绍三层+设计模式后该怎样实现。首先要做的就是在哪加,怎样加? 三层基本的目的是解耦合,实现各个层之间的分离,从而做到改变一个尽可能不影响其它的层。所以能够在B层和D层加一个抽象工厂模式,来实现此目的。例如以下图: 当然还...
分类:
其他好文 时间:
2014-07-02 21:53:04
阅读次数:
249
创建模式1.工厂方法模式(Factory Method) 将程序中创建对象的操作,单独出来处理,创建一个产品的工厂接口,把实际的工作转移到详细的子类。大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的抽象模式。 public class TestFactoryMethod ....
分类:
编程语言 时间:
2014-07-01 18:56:50
阅读次数:
235
ListView和GridView已经成为原生的Android应用实现中两个最流行的设计模式。目前,这些模式被大量的开发者使用,主要是因为他们是简单而直接的实现,同时他们提供了一个良好,整洁的用户体验。 对于ListView和GridView一个共同的需求就是在用户不断向下滚动,组件仍能动态的加载更...
分类:
移动开发 时间:
2014-07-01 18:50:08
阅读次数:
222
观察者模式又叫发布-订阅(Publish/SubScribe)模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 #include #include using namespace std;/*Obse....
分类:
其他好文 时间:
2014-07-01 18:30:39
阅读次数:
279
本章以山寨版Twitter为例介绍HBase Schema设计模式。广义的HBase Schema设计不只包括创建表时指定项,还应该综合考虑Column families/Column qualifier/Cell value/Versions/Rowkey等相关内容。
灵活的Schema&简单的存储视图
Schema设计和数据存储及访问模式关系密切,先回顾下HBase数据模型,有几个要点:...
分类:
其他好文 时间:
2014-07-01 14:35:30
阅读次数:
343
学过设计模式,用过设计模式,但是转瞬又忘了,这些模式到底是什么,到底是干什么用,到底是用在哪里的.看DRP的时候,又介绍了代理模式,介绍了静态代理,动态代理;当时就觉得代理模式,就像是在客户端和真实的主题类中加了一个隔层,就像是解耦,加了一个中间层.
之前学习的时候,感觉那个例子举得不好,我一直不明白为什么要用代理.他的例子说了一个人小明要追小美,但是小明拜托小代去帮忙追小美,...
分类:
其他好文 时间:
2014-07-01 11:21:54
阅读次数:
205
在上一篇里我们谈了谈为何设计模式,那接下来我们再浅谈一下在面向对象设计中我们经常要遵循的一些原则。这些原则是经过无数的前人总结出来的经验的结晶。只有遵循这些原则,你才有可能涉及出优秀的代码。今天我们要谈的原则有七大原则,即:单一职责,里氏替换,迪米特法则,依赖倒转,接口隔离,合成/聚合原则,开放-封闭 。
1. 开闭原则
定义:软件实体应当对扩展开放,对修改关闭。这句话说得有点专业,...
分类:
其他好文 时间:
2014-07-01 07:56:00
阅读次数:
200
学习经典框架的实现原理以及设计模式在其实际中的运用,是非常有必要的,可以让我们更好进行面向对象。
本篇文章就来模拟Spring的IOC功能,明白原理后,可以更好的使用它,进而为进行面向对象提供一种思路。
点击下载源码:下载
首先我们把我们用的dao、service、entity定义出来:
Student.java :
package com.bzu.entity;...
分类:
编程语言 时间:
2014-07-01 06:27:15
阅读次数:
278