当前分类 / 设计模式 / 总共4篇

六大设计原则浅析

设计在软件开发中的重要性

重要性

在上大学的时候我们总是不理解为什么要讲这么理论性的东西,当时就一个感觉就是没什么用,我们更想去学习一些可以看到结果的东西,当你毕业之后就会发现基础的知识是多么重要,而这些知识都有一个共性就是可以脱离具体的技术或者问题而存在,是一种可以长期指导我们学习和进步的重要思想,设计原则和模式就是软件开发中的这种思想。

设计原则

我们先来思考一个问题:

怎么样的软件才算一个好的软件或者说对于程序员我们如何评价他(她)的编码技术?

我们来假设一个项目是由某个程序员独立去完成的,他做的事情不仅仅编码这么简单,编写实现功能的代码只占整个项目的30%都不到,他首先做的就应该是对整个项目的技术选择和框架设计(需求的学习和理解暂且不考虑),接下来才是正式编写代码,在实现过程中又需要多次的测试和修改(重构),这样就够了吗?如果能做到这些是可以开发出一个完整的软件,但是还不够。软件工程和盖房子有所区别的地方就在这里,房子盖好就不需要拆了重盖了,软件开发中我们还需要考虑到日后的迭代和变更,所以我们要做到整个结构有一个好的可维护性,设计原则是什么?设计原则就是指导我们实现这种结构的理论基础(也可以说是思想)。

阅读更多

设计模式(2)结构型模式

结构型模式 桥接模式 将抽象和实现耦合,使得两者可以独立的变化。 interface Implementor{ void doSomething(); void doAnything(); } class ConcreteImplementor1 implements Implementor{ public void doSomething(){ //具体业务处理 } public void doAnything(){ //具体业务处理 } } abstract class Abstraction{ private Implementor imp; public Abstraction(Implementor _imp){ imp = _imp; } //自身的行为和属性 public void request(){ imp.doSomething(); } public Implementor getImp(){ return imp; } } class RefinedAbstraction extends Abstraction{ public RefinedAbstraction(Implementor _imp){ super(_imp); } @Override public void request(){ super.request(); super.getImp().doAnything(); } } class Client{ public static void main(String[] args){ //定义一个实现化角色 Implementor imp = new ConcreteImplementor1(); //定义一个抽象化角色 Abstraction abs = new RefinedAbstraction(imp); abs.

阅读更多

设计模式(1)创建型模式

总体来说设计模式分为三大类:创建型模式、结构型模式、行为型模式。

创建型模式

简单工厂模式

工厂类是整个模式的关键。它包含必要的判断逻辑,能够根据外界给定的信息知道创建那个类的实例,外部无需了解该对象是如何被创建和组织的。有利于软件体系结构化。由于工厂类集中了所有实例的创建逻辑,简单工厂模式的缺点也体现在工厂类上。

//Factory类

if( arg == "A" ){
	return new FrescoLoader();
}else if( arg == "B" ){
	return new GlideLoader();
}

可以明显的看到简单工程模式违反了开放-封闭原则(OCP)

阅读更多