引言
作为银行主管,如何保证ATM机在内部隐藏实现,对外提供接口? 在类的设计之初,应该基于什么思路来实现类的功能要求和交互要求?以下问题应该是我们首先关注点:
1、类的功能是什么?
2、哪些字段、方法、属性?
3、对外提供的公有方法有哪些,对内隐藏的私有变量有哪些?
4、类与类的关系是继承还是聚合?
这些问题是我们有效设计的关键因素。往往系统需求描述的核心名词,抽象为类;而这些名词驱动的动作,抽象为方法。当然,具体的设计思路要根据具体的需求情况,在整体架构目标的基础上进行有效的筛选、剥离、抽象。取舍之间,彰显设计之美。
字段
字段通常定义为private,表示类的信息。大部分情况下字段是可读可写的,只读字段只能在构造函数中被赋值,其他方法不能改变只读字段。
public class Client
{
private string name; //用户姓名
private int age; //用户年龄
private string password; //用户密码
}
如果以public定义类的状态信息,我们可以以类实例访问和改变类的字段内容。例如:
public static void Main()
{
Client client = new Client();
client.name = "xiaowang";
client.age = 30;
client.password = "123456";
}
Client实例通过公有字段很容易达到存取信息的目的。然后。封装告诉我们:类的字段信息最好以类的私有方式提供给类的外部,否则不当操作,将破坏类的信息状态,无法保证数据的安全性、可靠性。
封装的第一个原则:将字段定义为private。
未完待续
那么,将字段设置为 private 后,对对象状态信息的控制又该如何实现呢?