嘿,我有一个关于面向对象设计编程的通用问题,特别是关于创建对象/接口,最终成为程序员然后使用的API和可扩展框架。假设我正在创建一个名为“Shoe”的对象,其中包含“brand”,“type”,“gender”,“size”,“color”和“brand_id”等一些私有数据变量。一个程序员想要创建一个Shoe对象。那么我将如何去实现一种程序员设置Shoe类私有数据变量的方式。我应该创建一个冗长的构造函数,如“鞋子(字符串品牌,字符串类型,int大小,颜色c,int id)”或者我应该使鞋子构造器变得简单,比如“鞋子(Shoe)”和然后为setBrand(),setType()等所有这些私有数据变量提供setter方法。对象设计构造函数vs设置方法
setter方法的问题是,如果将此对象传递给第三方客户端或甚至另一个函数,程序员就可以设置/覆盖这些数据变量的值,从而使新创建的鞋子对象无用。如果有人想要通过Addidas鞋,现在程序员可以将该对象重新写入耐克并存储它。什么是最好的答案/解决方案?
2014-01-23
AyBayBay