2012年5月9日

设计模式之简单工厂模式学习

摘要: 学习C++有一两年了,面向对象思想也有所接触。使用过MFC以及OSG类库进行过开发,无非就是调用别人设计好的类库,要说自己使用面向对象的思想去开发程序,这个还真没有。意识到自己在这方面的匮乏,开始学习设计模式。教材选用《大话设计模式》,每个章节的学习过程分为三部分:第一部分,阅读课本,第二部分:按照书上例子写出C++代码的对应版本。第三部分:博客上的学习笔记。 编程是一门技术,更是一门艺术。应该经常考虑如何使代码更加简练、可扩展、可复用和易维护。这是每个立志于成为合格程序员都应具有的素质。这些东西学校不教,只有通过从大量编程中总结教训获得经验。 通过封装继承多态,把程序的耦合性降低,使程序更. 阅读全文

posted @ 2012-05-09 21:53 ithzhang 阅读(204) 评论(0) 推荐(0)

如何自学一门新的语言:由学习C++想到的

摘要: 上半年学了C++.平时我把大部分时间都用在了它上面。除了C++大学教程那本书外我还看了C++ primer。三个月的时间我把它们都看完了。期间做了大量的笔记,每遇到一个疑问我都会在书上标示出来,注明日期。等以后明白了再来回答。自我感觉基础知识还是掌握的挺好的。基本上没有什么知识点遗漏。但是与我付出的时间精力相比我想收获还是有一定差距的。这引发了我一个思考:对于初学者,如何自学一门新的语言,才能保证花最少的时间获得最大的效果? C++大学教程这本书很不错,介绍的很详细,使用了大量的篇幅引出本节的知识点。C++ primer 根是经典中的经典但是由于知识点太详细涉及到很多的细节。因此对于初学者来说 阅读全文

posted @ 2012-05-09 21:49 ithzhang 阅读(169) 评论(0) 推荐(0)

设计模式之代理模式学习

摘要: 代理模式:为其他对象提供一种代理,以控制对这个对象的访问。Subject类,被代理的类。定义了RealSubject和Proxy的接口。这样代理类就可以执行被代理的所有行为。RealSubject定义Proxy所代理的真实实体。Proxy类,代理类,与RealSubject有相同的接口。#include<iostream> using namespace std; class Subject { public: Subject() { } virtual void function1()=0; virtual void f... 阅读全文

posted @ 2012-05-09 20:45 ithzhang 阅读(165) 评论(0) 推荐(0)

设计模式之装饰模式学习

摘要: 装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 Component定义了一个对象的接口,可以给这些对象动态的添加职责。ConcreteComponent定义了一个具体的对象。也可以给这个对象增加职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component的功能。但对于Component来说是无需知道Decorator的存在的。ConcreteComponent是具体的装饰对象。起到给Component增加功能的作用。#include<iostream>using namespace std;class C 阅读全文

posted @ 2012-05-09 09:08 ithzhang 阅读(150) 评论(0) 推荐(0)

2012年5月8日

设计模式之依赖倒转原则学习

摘要: 可以把电脑理解成大的软件系统,任何部件如cpu、内存、显示器,都可以看成程序里封装的类或程序集。由于pc易插拔的方式,任何部件都可以很方便的更换,而不影响其他部件。面向对象把这种关系叫做:强内聚,低耦合。pc很好的体现了面向对象的几大原则。如单一原则:内存坏了只需要将内存条换掉,不应该成为更换cpu... 阅读全文

posted @ 2012-05-08 09:14 ithzhang 阅读(178) 评论(0) 推荐(0)

2012年5月4日

设计模式之开放--封闭原则学习

摘要: 开放封闭原则:软件实体应该可以扩展,但是不可以修改。它有两个特性:一,对扩展是开放的,二:对修改是封闭的。开放即可以操作,关闭即不可以操作。在设计模式中,这种不能修改却可以扩展的思想,就是开放封闭原则、 我们在做任何系统时,不要奢望系统一开始需求就确定。这是不现实也是不科学的。既然需求是变化的,那... 阅读全文

posted @ 2012-05-04 09:22 ithzhang 阅读(204) 评论(0) 推荐(0)

2012年5月3日

设计模式之单一职责原则学习

摘要: 单一职责原则:就一个类而言应该仅有一个引起它变化的原因。 比如写一个窗口应用程序。我们会创建一个类,将各种各样的代码,如某种算法的代码或是访问数据库的代码,都放在这个类中。以后一旦需求有所更改就必须修改这个类。各个功能的耦合性太大,牵一发而动全身。维护很麻烦,复用不可能,也缺乏灵活性。 由于c语言是... 阅读全文

posted @ 2012-05-03 11:07 ithzhang 阅读(176) 评论(0) 推荐(0)

2012年5月2日

设计模式之策略模式学习

摘要: 策略模式:它定义了算法家族,分别封装起来,让他么之间可以互相替换。此模式让算法的变化,不会影响使用这些算法的客户。在引出策略模式时,讨论了超市收银系统。可以将各种收费项目抽象成几种操作,比如正常收费、打折、返现、返积分。。。对打折来说,之所以可以这样进行抽象因为各种折扣之间存在着相互的联系,故将其抽象为一种。返现、返积分也类似。 算法本身是一种策略,这些算法可能随时被替换,这就是变化点,而封装变化点是面向对象一种很重要的思维方式。策略模式是定义了一系列算法的方法,从概念上来看所有这些算法完成相同的工作,只是实现不同。它可以以相同的方式调用所有的算法,减少了各种算法类与使用它的算法类之间的耦合。 阅读全文

posted @ 2012-05-02 23:16 ithzhang 阅读(181) 评论(0) 推荐(0)

2012年5月1日

设计模式之简单工厂模式学习

摘要: 学习C++有一两年了,面向对象思想也有所接触。使用过MFC以及OSG类库进行过开发,无非就是调用别人设计好的类库,要说自己使用面向对象的思想去开发程序,这个还真没有。 意识到自己在这方面的匮乏,开始学习设计模式。教材选用《大话设计模式》,每个章节的学习过程分为三部分:第一部分,阅读课本,第二部分:按照书上例子写出C++代码的对应版本。第三部分:博客上的学习笔记。 编程是一门技术,更是一门艺术。应该经常考虑如何使代码更加简练、可扩展、可复用和易维护。这是每个立志于成为合格程序员都应具有的素质。这些东西学校不教,只有通过从大量编程中总结教训获得经验。 通过封装继承多态,把程序的耦合性降低,使程序. 阅读全文

posted @ 2012-05-01 22:21 ithzhang 阅读(181) 评论(0) 推荐(0)

2012年4月15日

VC调用matlab函数mclcppMlfFeval重复定义

摘要: 问题背景: 用mcc -W cpplib:libname -T link:lib -v matlab_m_file.m 编译.m文件,生成vc可用的动态连接库和.h头文件,相关数据.c文件,和一个.cpp文件(m_to_cpp.cpp),该.cpp文件中.h文件提供的各个接口的实现,它包括在VC程序... 阅读全文

posted @ 2012-04-15 11:10 ithzhang 阅读(571) 评论(0) 推荐(0)

导航