我是靠谱客的博主 单纯枕头,最近开发中收集的这篇文章主要介绍设计模式的本质是什么(转),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

设计模式的本质是面向对象方法的实际运用。具体而言,是封装、继承、多态和关联的反复使用。可以说,现在市面上关于设计模式的书没有一本是适合初学者的。套用网上看到的句型:你跟他讲模式,他跟你谈UML;你跟他讲UML,他跟你谈软件工程;你跟他讲软件工程,他跟你谈解耦;你跟他讲解耦,他跟你谈框架;你跟他讲框架,他跟你谈哲学;你跟他讲哲学,他跟你谈建筑;你跟他讲建筑,他又跟你谈模式。 
感觉真正理解什么是设计模式,就是要透彻理解OO的四大要素:封装、继承、多态和关联。其中核心是封装的概念。 
拿最基本的数据类型举例: 
int a = 3; 
这里,我创建了一个数据对象实例:a。如果我将这个创建过程封装成对象 
class Int { 
private int a = 3; 
public static int getIntInstance() { 
return a; 


这不就是工厂方法吗?不理解设计模式本质的人会说这是多此一举。有没有明白人能告诉我是真的多此一举吗? 
上面的例子是数据封装,下面举一个逻辑封装的例子: 
循环遍历大概初学编程的人没有不会的。例如,有一个数组 
int[] intArray = new int[] {56,27,19,31,22, 9}; 
如果要访问数族中的每一个元素,最常见的方式 
for(int i=0; i<intArray.length; i++) { 
println(intArray[i]); 

在这个循环中,有三个逻辑:1. 判断逻辑:i<intArray.length;2. 访问逻辑:intArray[i];3. 递增:i++。 
将这三个逻辑加以封装 

class MyIterator { 
int i=0; 
int[] intArray; 
MyIterator (int[] intArray) { 
this.intArray = intArray; 

// 封装了第一个逻辑 
boolean hasNext() { 
return i<intArray.length; 

// 封装了第二个和第三个逻辑 
int next() { 
return intArray[i++]; 


这样,我们就可以这样遍历了 
MyIterator myIterator = new MyIterator(intArray); 
while(myIterator.hasNext()) 
println(myIterator.next()); 

这不就是迭代子模式吗。捅破了窗户纸,所谓“设计模式”,只不过是一些编程技巧罢了。真用不着上纲上线。只是,封装这个看似简单的概念,被用到了极致。 
数据可以封装,函数可以封装,逻辑可以封装,对象可以封装,网络可以封装,硬件可以封装,连人的思想都可以封装。马克思在《资本论》中开宗明义第一句就是:资本主义生产方式占统治地位的社会的财富,表现为“庞大的商品堆积“。 

OO方式下的占绝对地位的基本概念,表现为”封装的无所不在“。


原文链接:http://www.douban.com/group/topic/35784789/

最后

以上就是单纯枕头为你收集整理的设计模式的本质是什么(转)的全部内容,希望文章能够帮你解决设计模式的本质是什么(转)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部