黑马程序员-android之设计模式

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

1、开闭原则
   含义:对扩展开放,对修改关闭
   使用方法:多使用抽象类和接口
    a:多使用抽象类
             在设计类时,对于拥有共同功能的相似类进行抽象化处理,将公用的功能部分放到抽象类中,所有的操作都调用子类,这样,在需要对系统进行功能扩展时,只需要依据抽象类实现新的子类即可。
    b: 多使用接口
             与抽象类不同,接口只定义子类应该实现的接口函数,而不实现公有的功能,在现在大多数软件开发中,都会为实现类定义接口,如果要改换原有的实现,只需要该换一个实现类即可。
2、里氏代换原则
     含义:基类可以被子类替换(再用到基类的地方,换成子类也依然正确)
     使用方法:从抽象类继承,不要从具体类继承
     eg:我们知道正方形是一种特殊的长方形,所以我们用正方形继承长方形
    Rectangle类

public class Rectangle {
	private int width;
	private int height;

	public int getWidth() {
		return width;
	}

	public void setWidth(int width) {
		this.width = width;
	}

	public int getHeight() {
		return height;
	}

	public void setHeight(int height) {
		this.height = height;
	}

}

Square类

public class Square extends Rectangle {
	public void setWidth(int width) {
		super.setWidth(width);
		super.setHeight(width);
	}

	public void setHeight(int height) {
		super.setWidth(height);
		super.setHeight(height);
	}

}

TestRectangle类

public class TestRectangle {

	public static void main(String[] args) {

		Rectangle rect = new Rectangle();
		zoom(rect, 10, 20);
	}

	public static void zoom(Rectangle rectangle, int width, int height) {
		rectangle.setWidth(rectangle.getWidth() + width);
		rectangle.setHeight(rectangle.getHeight() + height);
	}

}

在测试函数里,我们要为长和宽增加高度,但是如果长宽增加的高度不一样,那么对正方形来说,就失败了
修改:定义长方形和正方形的共同父类
3、 依赖倒转原则
    含义:要依赖于抽象类, 不要依赖于具体类(就是当一个对象中有另一个对象的引用时,最好不要引用该对象本身,而是引用该对象的接口或抽象类)
    实现方法:针对接口编程,不要针对实现编程 

依赖也就是耦合,共分为下面3种。 
    零耦合(Nil Coupling)关系:两个类没有依赖关系。 
    具体耦合(Concrete Coupling)关系:两个具体的类之间有依赖关系,如果一个具
体类直接引用另外一个具体类,就是这种关系。 
    抽象耦合(Abstract Coupling)关系:这种关系发生在一个具体类和一个抽象类之间,
这样就使必须发生关系的类之间保持最大的灵活性。   
4、接口隔离原则:
    含义:使用多个隔离的接口,不要使用单个大接口
    实现方法:建立最小的接口
5、迪米特法则(最少知道原则)
    含义:一个实体应当尽可能少的与其他实体发生相互作用
    实现方法:通过中间类建立联系
    迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,
很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。 
迪米特法则不希望类直接建立直接的接触。如果真的有需要建立联系,也希望能通过它
的友元类来转达。因此,应用迪米特法则有可能造成的一个后果就是:系统中存在大量的中
介类,这些类之所以存在完全是为了传递类之间的相互调用关系-这在一定程度上增加了系
统的复杂度。 
6、合成复用原则
    含义:尽量使用合成/聚合,而不是使用继承
    实现方法:尽量使用合成/聚合,而不是使用继承

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
黑马程序员 设计模式c 是指黑马程序员通过C语言实现设计模式的一门课程。设计模式是面向对象设计中经过实践和总结后的一种解决问题的方案。它是一种具体的设计思路,是编写高质量、易于理解、可维护和可扩展的代码的指导原则。在软件开发中,我们经常会遇到各种各样的问题,设计模式可以帮助我们更加灵活高效地解决这些问题。 黑马程序员设计模式C课程从理论讲解到实践操作,通过C语言来实现各种设计模式,帮助学员理解设计模式的原理和应用场景。通过学习该课程,学员可以提升自己的设计能力和编程水平,使得自己编写的代码更加优雅和可复用。 该课程主要包括以下几个部分:首先是介绍设计模式的基本概念和分类;然后是详细讲解每一种设计模式的原理、结构和应用场景;接着是通过具体的案例来演示如何在C语言中实现每一种设计模式;最后是实际项目实战,让学员能够将所学的设计模式应用到实际的软件开发中。 通过学习黑马程序员设计模式C课程,可以帮助开发人员更好地理解和应用设计模式,提高软件开发的质量和效率。无论是对于初学者还是有一定经验的开发人员来说,都可以从中获得实际的收益。设计模式是编写高质量代码的基石,掌握设计模式可以让我们在编程过程中更加得心应手,实现代码的可维护性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值